ИМХО, в
Datasheet на STM32F407, страница 61, описаны альтернативные функции по каждому пину в виде таблицы. Соответственно, AF0 == 0000 (0), AF15 == 1111 (F), etc.
А уже в
Reference manual'е описаны сами регистры.
Так что, пример выбора альтертанивной функции #10 для пина #7 будет выглядеть так:
Код
GPIOn->AFRL &= ~(0xF0000000); // Сброс битов альтертанивных функций для пина
GPIOn->AFRL |= (0xA0000000); // Выставляем биты регистра
Либо
Код
GPIOn->AFRL &= ~(0x0F << 28); // То же, но с предварительными сдвигами.
GPIOn->AFRL |= (0x0A << 28); // То же, но со сдвигом.
Сообщение отредактировал AlanDrakes - Oct 20 2015, 10:18