Собственно, чтоб проект не был совсем уж бесполезным, пусть он моргает светодиодом, коих целых два.
Один сидит на выводе PC9 (зелёный), а другой на PC8 (синий). Вспоминая предыдущий опыт, сделаем уже по канону: функции задержки, функции работы со светодиодом.
читать дальшеДумаю, никого не удивит, что заголовочный файл с описанием периферии называется stm32f0xx.h.
Описание регистров и флагов находится в документе RM0091 Reference manual «STM32F05xxx advanced ARM-based 32-bit MCUs».
Сперва надо включить тактирование у порта, на котором сидят светодиоды. Иначе ничего работать не будет. Ищем в содержании раздел Reset and clock control (RCC), в котором где-то есть регистр управления тактированием... Нашёл: это RCC_AHBENR. За порт C отвечает 19 бит (IOPCEN).
Т.е. код будет выглядеть так:
Называется в заголовочном файле он иначе, чем в мануале, но я прям поиском по AHBENR в файле stm32f0xx.h это название и нашёл. Остальные по названию регистра также легко ищутся.
Далее назначаем выводы на выход. Опять же, смотрим регистры в мануале.
В регистре MODER биты сгруппированы по парам. Нам надо установить младший в паре в единицу, согласно руководящим указаниям:
MODERy[1:0]: Port x configuration bits (y = 0..15)
01: General purpose output mode
Остальные параметры нас устраивают, потому дальше просто устанавливаем единицу в соответствующем бите или же снимаем её. Через регистр BSSR это делать удобнее:
Если оформить это в виде функций, то главный цикл будет выглядеть так:
Светодиод зелёный будет моргать после заливки программы в контроллер =) Успех!
Файлы:
main.c
Проект.<< Предыдущее Следующее >>