jazz393 писал(а):Всем добрый день, уже не первый раз спотыкаюсь о грабли - я не могу найти где в referenc manual на какой-либо stm32 написано как конфигурировать порты под альтернативные функции, не то значение, которое пишется в регистр GPIO->AFIOH/L а, имеется ввиду следующее - скажем под i2c порты должны быть в Output/open-drain/pull_up, и вот именно это я найти не могу(сейчас ищу под spi), в описании самого spi/i2c/uart и т.д. я этого не вижу, в описании портов тоже, мб я плохо ищу/смотрю или пропустил, просто не хочется каждsй раз бегать на форум и спрашивать как настраивать порты под тот или иной интерфейс/функцию .... а в доке найти не могу =((
К STM32 прилагаются три листа. Это:
1. Datasheet
2. Reference Manual
3. Programming manual
Первый несет в себе информацию об электрических параметрах, корпусах и распиновке.
Причем, там же приводится таблица альтернативных режимов GPIO. Из этой таблицы выбирается значение,
которое надо прописывать в GPIOx->AFR[x] (для F4xx серии) чтобы выбрать ту или иную альтернативную функцию.
Второй - собственно описание режимов работы периферии, ее регистров и битов этих регистров.
Третий - больше касается работы ядра, контроллера прерываний, ассемблерных инструкций, протоколов прошивки и отладки и прочего такого.
Режим ноги выбирается исходя из требования к той или иной периферии. I2C требует OD выход с подтяжкой.
UART требует обычный PP выход и вход без подтяжек.
Обычный SPI требует два выхода PP и вход с или без подтяжки.
Так что тут надо понимать работу различных интерфейсов, чтобы корректно сконфигурировать порт.
По поводу альтернативных режимов GPIO
ИМХО, в F4xx-й серии это сделали куда грамотнее, чем в F1xx-й серии (с ихними MAPR регистрами), ибо подход с мультиплексорами позволяет в дальнейшем
одну и ту же периферию кидать куда угодно. В STM32F439xxxx пины некоторой периферии имеют уже по три варианта ремапа.