您的位置 首页 主动

STM32的功用引脚重映射和复用功用

Stm32的引脚一般应用:模拟输入_AIN——应用ADC模拟输入,或者低功耗下省电。浮空输入_IN_FLOATING——可以做KEY识别,RX1开漏输出

Stm32的引脚一般运用:

模仿输入_AIN ——运用ADC模仿输入,或许低功耗下省电。

浮空输入_IN_FLOATING ——能够做KEY辨认,RX1

开漏输出_Out_OD——运用于I2C总线; (STM32开漏输出若外部不接上拉电阻只能输出0)

STM32中有许多内置外设的输入输出引脚都具有重映射(remap)的功用,本文对一些在运用引脚重映射时所遇到的有关问题加以阐明。

咱们知道每个内置外设都有若干个输入输出引脚,一般这些引脚的输出脚位都是固定不变的,为了让规划工程师能够更好地组织引脚的走向和功用,在 STM32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默许的脚位外,还能够经过设置重映射寄存器的方法,把这个外设的引脚映射到其它的脚 位。下面是STM32F103xC中有关USART3引脚的摘要片段;

从这儿能够看出,USART3_TX的默许引出脚是PB10,USART3_RX的默许引出脚是PB11;但经过重映射后,能够改变USART3_TX的引出脚为PD8,改变USART3_RX的引出脚为PD9。

STM32中的许多内置外设都具有重映射的功用,比方USART、定时器、CAN、SPI、I2C等,具体请看STM32参考手册(RM0008)和STM32数据手册。

有些模块(内置外设)的重映射功用还能够有多种挑选,下面是RM0008上有关USART3输入输出引脚的重映射功用表:

从这个表中能够看出,USART3的TX和RX引脚默许的引出脚位是PB10和PB11,依据装备位的设置,能够重映射到PC10和PC11,还能够重映射到PD8和PD9。

一个模块的功用引脚不管是从默许的脚位引出仍是从重映射的脚位引出,都要经过GPIO端口模块完成,相应的GPIO端口有必要装备为输入(对应模块的 输入功用,如USART的RX)或复用输出(对应模块的输出功用,如USART的TX),关于输出引脚,能够依照需求装备为推挽复用输出或开漏复用输出。

上图是STM32的GPIO端口模块,运用复用功用时的装备。从图中能够看出,装备为复用输出时,该端口对应的GPIO输出功用将不起作用。例如当装备PB10对应的引脚为复用输出功用时,操作PB10对应的输出寄存器将不影响引脚上的信号。

从图中还能够看出,一般的GPIO端口输入功用与复用的输入功用的装备方法没有别离,这意味着在运用引脚的复用输入功用时,能够在这个引脚的输入寄 存器上读出引脚上的信号。例如在使能了USART3模块时,能够读GPIOB_IDR寄存器,得到PB11信号线上的当时状况。

有不少引脚上装备了来自多个模块的复用功用引出脚,例如本文第一张图中显现的PB10,默许复用功用就有I2C2_SCL和USART3_TX两个功用,TIM2重映射后,TIM2_CH3也运用PB10的复用功用。

在运用引脚的复用功用时,需求注意在软件上只能够使能一个外设模块,否则在引出脚上或许发生信号抵触。例如,假如使能了USART3模块,一起没有 对USART3进行重映射装备,则不能够使能I2C2模块;同理假如需求运用I2C2模块,则不能使能USART3模块。可是假如装备了USART3的引 脚重映射,USART3的TX和RX信号将从PC10和PC11,或PD8和PD9引出,避开了I2C2运用的PB10和PB11,这时就能够一起运用 I2C2模块和USART3模块了。

USART3模块共有5个信号,别离为TX、RX、CK、CTS和RTS,从上面给出的第二张图中能够看出,重映射是对一切信号一起有用。

这5个信号中,在使能了USART3模块后,只要TX和RX是一直与对应的引出脚相连,而其它3个信号别离有独立的操控位,操控它们是否与外部引脚 相连,假如程序中不运用某个信号的功用,则能够封闭这个信号的功用,对应的引脚能够做为其它功用的引出脚。例如,当封闭了USART3的CK、CTS和 RTS功用而且没有重映射USART3时,PB12、PB13和PB14能够作为通用输入输出端口运用,也能够作为其它模块的复用功用引出脚。

下面这张图是一个内部操控衔接的等效示意图,它并不表明真实的内部衔接,但能够有用地协助了解重映射和复用引脚的概念。图中右边引出的信号,别离衔接到了本文第三张图的输入输出模块。


声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/256375.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部