STM32第二功能引脚映射

来源:互联网 发布:大数据产业市场规模 编辑:程序博客网 时间:2024/05/01 09:03

STM32部分外设的第二功能引脚映射

作者:JCY

时间:20121211

STM32FST(意法半导体公司)的产品,本芯片的设计支持了芯片上部分外设第二功能的引脚映射。这为设计STM32的电路板提供了方面,大大简化了电路的设计。当第一次看到AFIO功能的时候感到很困惑,一直不理解,但是最近突然明白了。不敢独享,写此文章与大家分享。本文章纯属个人的理解,如有任何的错误之处请指正,将不胜感激。

我们可以这样理解,对于每一个GPIO来说,他只有普通IO口的功能,并没有像CNAUARTSPITIMERI2CI2S、外部中断等外设。那么就不存在所谓第二功能了。假设现在我们在芯片上要加一个UART1的外设,此UART没有涉及到硬件流控制。所以该外设与外界的通信只需要两个引脚,即TXRX。但是我们要TXRX连接到那里哪?无论是STC89C5251单片机还是ATMEGA16AVR单片机,他们都是将TXRX与某引脚直接共用,TXRX的引脚也只能在此引脚上,不肯能被改变的。但是STM32却改变了普遍的半导体公司的一贯做法,使用了第二功能引脚的映射。我们以STM32芯片上的UART1为例来说明一下。默认的UART1的第二功能引脚TX1RX1分别在PA.9PA.10上。TX1RX1的引脚在PA.9PA.10并不是固定的,TX1RX1的第二功能引脚可以在PB.6PB.7上,那么PA.9PA.10只能使用它的普通IO功能了。

STM32中有一个寄存器叫AFIO_MAPR。它控制了第二功能的引脚在那个GPIO口上使用。现将该寄存器的内容粘贴如下:

看到了bit2位了吗?它控制了UART1通信引脚TX1RX1映射到哪一个引脚上。

芯片手册对该为的解释如下:

如果你使用了UART0来进行串口的通信。可以将芯片外部的TXRX引脚分别接在PA.9PA.10或者PB.6PB.7上。这都能够实现。

当接在PB.6PB.7上时需要将USART1_REMAP为设置为1。这样就OK了。