你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32-端口复用和重映射

[复制链接]
yang9397 发布时间:2021-4-16 14:16
1. 端口复用功能

! o$ Z5 I7 Z3 O0 [- B9 ~
Stm32有很多内置外设,这些外设的外部引脚都是与GPIO复用的,当这个GPIO作为内置外设使用的时候,就叫做复用。
举个例子:STM32F103ZET6的5个串口中的串口1,串口1的引脚对应的IO为PA9,PA10,而PA9,PA10的默认功能是GPIO,所以当PA9和PA10引脚作为串口1的TX,RX使用的时候,那就是端口复用。
4.1.png
; Y7 i& l( y: M* K- e# j1 I" K  S
复用端口功能在调用前需要先进行初始化配置。
! i& l. r' ^* D
A、GPIO端口使能。(要是使用到端口复用,当然要使能端口的时钟)
4.2.png

$ G9 R/ q7 B! ?8 w: D
B、复用的外设时钟使能。(要将端口PA9,PA10复用为串口,所以要使能串口时钟)
4.3.png
2 I6 S7 n7 Z! v2 {  q3 u' m
C、端口模式配置。在IO复用为内置外设的时候,必须要设置GPIO端口的模式。

$ y' p+ h. [% j: I* r1 I2 M7 z6 Y9 m
拿Usart1举例
4.4.jpg

( \" a+ z+ k/ \6 L, D! C* s" ^- P' W
所以,在使用复用功能时,最少要使能2个时钟:
1)GPIO时钟
2)复用的外设时钟

1 U0 R$ \+ \. M# L. X: u5 T" b
2. 端口重映射
为了使不同器件封装的外设的IO功能数量达到最优,可以把一些复用功能重新映射到其他一些引脚上,这种操作就是重映射。
每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在stm32中可以通过设置重映射寄存器的方式,把一个外设的引脚除了对应默认的端口外,还可以映射到其他端口。
举个串口1的例子:
4.5.png

/ D# f; N; q( N
从表中可以看出,默认情况下,串口1复用的时候占用的是引脚位PA9,PA10,而我们可以通过重映射的方式,将TX和RX重新映射到管教PB6和PB7上。
1 t. X6 p- Y# Y' p
在使用重映射功能的时,除了同样需要使能GPIO时钟和复用的外设时钟,还要使能AFIO功能时钟,然后要调用重映射函数。详细步骤为:
4.6.jpg
) p: n1 Z* d, Y. t
从上面可以看出,USART1只有一种重映射,即一旦映射,USART1的每一个功能引脚TX和RX都重新选泽,而对于USART3,存在部分重映射和完全重映射。所谓部分重映射就是部分管脚和默认的是一样的,而部分管脚是重新映射到其他管脚。而完全重映射就是所有管脚都重新映射到其他管脚。如图所示USART2重映射对应的表格:

; e6 T5 n: K& t/ C, n! e0 e# {! x' X
4.7.jpg

& v: J" |( n" k! ]8 N6 N; w" f3 h
如果要使用USART3的部分重映射功能,我们需要调用函数方法为:
4.8.png
/ Y6 J7 i) f1 {
文章出处: 兜兜的小白之旅

$ ^9 u& @3 O9 Z8 z+ K( ^# |
收藏 评论0 发布时间:2021-4-16 14:16

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版