А сие
Библиотеки SPL и HAL позволяют разрабатывать программы без необходимости изучения МК на уровне регистров.
Мягко говоря лукавство, а по большому счету - ложь.
Для 103ьих - по умолчанию тактирование всей периферии выключено.
За это отвечает домен RCC Reset and Clock Control[/b]
Открываем даташит , ищем диаграмму STM32F103xx performance line block diagram
Где указано на какой шине какая периферия висит.
GPIOC на APB2.
Идем читать RM .
Ищем регистры RCC, конкретно RCC_APB2ENR. (APB2 ENable Registr)
Имена регистров образуются так - домен _ имя регистра .
Так же образуются имена бит регистров домен_ имя регистра _ имя бита
Это и есть стандарт CMSIS, и по этому стандарту прописаны и регистры и биты в хэдере.
Таким образом бит отвечающий за включение GPIOC - RCC_APB2ENR_IOPCEN
Ну и включаем GPIOC :
RCC->APB2ENR |=RCC_APB2ENR_IOPCEN;
Таким образом даже не нужно знать значение RCC_APB2ENR_IOPCEN, но если приспичит - все они прописаны в хэдере.