Фуф.
Дма,таймера, шим, уарт, ИО, прерывания - за пару дней вроде осилил.
Осталось столько же.
USB, АЦП,ЦАП, СПИ, сторожевик.
ДМА у СТМа проще чем у Хмеги. Главное в ХАЛ не лезть - наворотили ппц.
А не делимся ли мы макросами разными, писанными, в какой нибудь теме?
Для мэтров программирования это не актуально, а для начинающих - тем более, начинающих изучать СТМ может пригодится.
Кусок который поможет вам настраивать порты и работать с ними без заморачивания с блябляотеками.
#define GPIO_SPEED_FREQ GPIO_SPEED_FREQ_LOW - скорость порта (меняете как вам угодно на MEDIUM или HIGH).
Что понадобится для использования
Код:
|
OUT_INIT_AF_PP(p) - инициализация порта на выход пуш пул, альтернативная функция порта (это значит порт используется переферийным ус-вом)
OUT_INIT_AF_OD(p) - инициализация порта на выход открытый коллектор, альтернативная функция порта (это значит порт используется переферийным ус-вом)
OUT_INIT_PP(p) - инициализация порта на выход пуш пул
OUT_INIT_OD(p) - инициализация порта на выход открытый коллектор
IN_SET_PU(p) - инициализация порта на вход подтяжка к плюсу
IN_SET_PD(p) - инициализация порта на вход подтяжка к минусу
IN_SET_OFF(p) - - инициализация порта на вход без подтяжки
GET(p) - читаем порт
OFF(p) - выключаем порт (0)
ON(p) - включаем порт (1)
TGL(p) - изменяем состояние порта на противоположное
Здесь под словом порт (p) имеется ввиду один вывод порта.
Он должен описываться двумя символами через запятую C,13 - GPIOC pin 13
вот так
#define PORT_NAME C,13 |
Вставляете этот код в какой нибудь .h файл и можно моргать светодиодиком.
Пример.
Код:
|
#define LED_PORT C,13 //Порт к которому подключен светодиод
OUT_INIT_PP(LED_PORT);//инициализация порта на выход пуш пул
ON(LED_PORT); //включаем порт
OFF(LED_PORT); //выключаем порт |
Ну и плюсы этого дела - код раз в 10 меньше чем через ХАЛ.
Движок глючит с кодом, прикреплю файлом.