简介:最近在学习STM32,在BZ上一篇关于的串口通讯文章里有这么一段代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE); 最初是参阅开发的里子写的一直对GPIOD或上“RCC_APB2Periph_ …
最近在学习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重映射表
其他外设的重映射能够参阅STM32100X手册。
为了节约IO资源单片机会在一个IO上复用许多功用,一般的单片机用到 一个功用后就能再用两外复用的功用了,这就表现出了STM32 GPIO的强壮功用了,咱们用重映射的办法把其间一个外设映射到其他IO脚上,这样就能够充分利用片内资源!