Плюс один. Выключить Альтернейтив Фанкшн в конфигурации GPIO надо,
чтобы мультиплексор отпустил и позволил работать с регистром ODR
(или как его там). P.S. Вод до чего доводит привычка к "кубам". Я беру родную библиотечную функцию и тут же разматываю на свои регистры, чтобы в файле "конфиг" закомментировать заголовок этой перифиерии вообще - чтобы работали только core.h и ch32v103.h (условно). В них достаточно объявлений для работы с железом.
Как правило, в предложенных функциях чего-то не хватает. Всё равно переписываю ручками.