STM32 学习笔记之重映射功能
简介:最近在学习STM32,在BZ 上一篇关于的串口通信文章里有这么一
段代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE); 当初是参考开发的里子写的一直对GPIOD
或上RCC_APB2Periph_ ...关键字:STM32 重映射最近在学习STM32,在BZ 上一篇关于的串口通信文章里有这么一段代码:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE);
当初是参考开发的里子写的一直对GPIOD 或上RCC_APB2Periph_AFIO 这
句话的意思没搞懂,通过这几天在网上查找资料和看手册,终于高清楚了,不
敢独享,希望能对跟我一样的新手有所帮助吧o(∩_∩)o...
STM32 上有很多I/O 口,也有很多的内置外设想I2C,ADC,ISP,USART 等,
为了节省引出管脚,这些内置外设基本上是与I/O 口共用管脚的,也就是I/O
管脚的复用功能。
但是STM32 还有一特别之处就是:很多复用内置的外设的
I/O 引脚可以通过重映射功能,从不同的I/O 管脚引出,即复用功能的引脚是可
通过程序改变的。
知道了这些我们就不难理解上面代码的意思了,程序中用到
的USART2 外设的TX,RX 分别对应PA2,PA3,但是我的学习板上的
PA2,PA3 引脚接了其他设备,但是为了还要用
USART2,RCC_APB2Periph_GPIOD |RCC_APB2Periph_AFIO 就打开了GPIOD 重映射功能把USART2 设备的TX,RX 映射到PD5,PD6 上,我们在这两个引
脚上接上MAX232 串口芯片就可以使用USART2 串口通信了。
那为看官该问:USART2 是不是可以映射到任意管脚呢?答案是否定的,它只能映射到固定的
管脚,下图是USART2 重映射表。