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

stm32-端口复用和重映射

[复制链接]
yang9397 发布时间:2021-4-16 14:16
1. 端口复用功能
) m8 Z& z2 Z: z& l) m4 ^
Stm32有很多内置外设,这些外设的外部引脚都是与GPIO复用的,当这个GPIO作为内置外设使用的时候,就叫做复用。
举个例子:STM32F103ZET6的5个串口中的串口1,串口1的引脚对应的IO为PA9,PA10,而PA9,PA10的默认功能是GPIO,所以当PA9和PA10引脚作为串口1的TX,RX使用的时候,那就是端口复用。
4.1.png
0 I  ^- d4 P' ]$ Z6 I* V) C
复用端口功能在调用前需要先进行初始化配置。
: k+ J( M' x1 Y" u; J4 U6 o. ~
A、GPIO端口使能。(要是使用到端口复用,当然要使能端口的时钟)
4.2.png
2 l8 i  S" _" S% J- I8 e! F9 ^/ g
B、复用的外设时钟使能。(要将端口PA9,PA10复用为串口,所以要使能串口时钟)
4.3.png
  u6 \( `* t. d' {3 C: G
C、端口模式配置。在IO复用为内置外设的时候,必须要设置GPIO端口的模式。

2 c1 _0 Q5 L5 }* N
拿Usart1举例
4.4.jpg

1 i! t* H) c, n% ?2 N, @
所以,在使用复用功能时,最少要使能2个时钟:
1)GPIO时钟
2)复用的外设时钟

( G- r% ~- p6 Q1 o1 J9 ?9 `
2. 端口重映射
为了使不同器件封装的外设的IO功能数量达到最优,可以把一些复用功能重新映射到其他一些引脚上,这种操作就是重映射。
每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在stm32中可以通过设置重映射寄存器的方式,把一个外设的引脚除了对应默认的端口外,还可以映射到其他端口。
举个串口1的例子:
4.5.png
7 \  _2 D! ?+ E
从表中可以看出,默认情况下,串口1复用的时候占用的是引脚位PA9,PA10,而我们可以通过重映射的方式,将TX和RX重新映射到管教PB6和PB7上。

* B2 G: B- V: _+ O) B6 E* e$ S
在使用重映射功能的时,除了同样需要使能GPIO时钟和复用的外设时钟,还要使能AFIO功能时钟,然后要调用重映射函数。详细步骤为:
4.6.jpg
0 e, i1 ^( g9 K- {: ]
从上面可以看出,USART1只有一种重映射,即一旦映射,USART1的每一个功能引脚TX和RX都重新选泽,而对于USART3,存在部分重映射和完全重映射。所谓部分重映射就是部分管脚和默认的是一样的,而部分管脚是重新映射到其他管脚。而完全重映射就是所有管脚都重新映射到其他管脚。如图所示USART2重映射对应的表格:

2 M. g7 _3 W- I4 n
4.7.jpg
0 J. S  ]/ J' Q" R  b9 B; L
如果要使用USART3的部分重映射功能,我们需要调用函数方法为:
4.8.png
; Q4 v5 x/ m: c& a3 p3 j
文章出处: 兜兜的小白之旅
, T! n: R; U+ s% b$ `1 j. |4 p9 Z6 q
收藏 评论0 发布时间:2021-4-16 14:16

举报

0个回答

所属标签

相似分享

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