STM32F407, назначение альтернативных функций выводам GPIO |
![]() |
Добавил(а) microsin |
У микроконтроллера семейства STM32F40x есть 16-битные порты GPIO, которые носят имя GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH, GPIOI, у некоторых даже есть GPIOJ и GPIOK (на самом деле все порты GPIO представляются в адресном пространстве как 32-битные регистры, но у них старшие 16 бит зарезервированы и не используются). У каждого такого порта 16 ножек. В зависимости от типа используемого корпуса (LQFP100, LQFP144 и т. п.) некоторые порты могут отсутствовать. Например, у микроконтроллера STM32F407ZGT6 в корпусе LQFP144 отсутствуют порты GPIOH/I/J/K. В даташите буквы A..I/J/K заменяют символом x, когда обобщенно говорят о всех регистрах GPIO: GPIOx означает все порты GPIO от GPIOA до GPIOI. Каждой ножке порта любого порта A..K можно присвоить любую из 16 альтернативных функций от AF0 до AF15. Альтернативная функция - это привязка ножки к какому-либо периферийному устройству микроконтроллера, например к порту SPI, USART, USB и т. д. Назначение альтернативной функции каждому выводу делается с помощью регистров GPIOx_AFRH и GPIOx_AFRL. Эти регистры 32-битные, и все их биты поделены на четверки бит, каждая четверка соответствует отдельной ножке порта GPIOx. Регистр GPIOx_AFRH отвечает за ножки с номерами бит от 15 до 8, а регистр GPIOx_AFRL отвечает за ножки с номерами бит от 7 до 0. Каждая альтернативная функция имеет двоичный номер от 0 до 15 (от AF0=0 до AF15=15), именно этот 4-битный номер записывается в четверку бит регистров GPIOx_AFRH и GPIOx_AFRL, определяя этим функционирование ножки порта. [Таблицы альтернативных функций портов микроконтроллеров STM32F405xx, STM32F407xx] По умолчанию (после сброса) все ножки портов GPIOx настроены на альтернативную функцию AF0. Таблицу всех альтернативных функций можно найти в даташите на микроконтроллер, она называется Alternate function mapping. |