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

stm32-端口复用和重映射

[复制链接]
yang9397 发布时间:2021-4-16 14:16
1. 端口复用功能
- l4 g! |# \& o  H" E, e9 x' L9 I
Stm32有很多内置外设,这些外设的外部引脚都是与GPIO复用的,当这个GPIO作为内置外设使用的时候,就叫做复用。
举个例子:STM32F103ZET6的5个串口中的串口1,串口1的引脚对应的IO为PA9,PA10,而PA9,PA10的默认功能是GPIO,所以当PA9和PA10引脚作为串口1的TX,RX使用的时候,那就是端口复用。
4.1.png
8 ~# d9 d3 k' l2 R* l, q
复用端口功能在调用前需要先进行初始化配置。

' b* ~1 e9 c5 A0 S; k
A、GPIO端口使能。(要是使用到端口复用,当然要使能端口的时钟)
4.2.png
* Q; \* l# K4 I- U" A0 D6 r" I
B、复用的外设时钟使能。(要将端口PA9,PA10复用为串口,所以要使能串口时钟)
4.3.png
+ L, O$ [3 J& i' S& {
C、端口模式配置。在IO复用为内置外设的时候,必须要设置GPIO端口的模式。

8 @5 |2 k4 e$ C2 ~
拿Usart1举例
4.4.jpg
! q6 C8 N& a* K1 |
所以,在使用复用功能时,最少要使能2个时钟:
1)GPIO时钟
2)复用的外设时钟
$ o5 c3 I$ [: I1 t6 W
2. 端口重映射
为了使不同器件封装的外设的IO功能数量达到最优,可以把一些复用功能重新映射到其他一些引脚上,这种操作就是重映射。
每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在stm32中可以通过设置重映射寄存器的方式,把一个外设的引脚除了对应默认的端口外,还可以映射到其他端口。
举个串口1的例子:
4.5.png
1 j# p5 F3 p1 P! x) C/ @
从表中可以看出,默认情况下,串口1复用的时候占用的是引脚位PA9,PA10,而我们可以通过重映射的方式,将TX和RX重新映射到管教PB6和PB7上。
6 H( ~. Y! F# K4 e" [
在使用重映射功能的时,除了同样需要使能GPIO时钟和复用的外设时钟,还要使能AFIO功能时钟,然后要调用重映射函数。详细步骤为:
4.6.jpg

7 u$ g4 ~- \( S) \' Z3 ~. y& R
从上面可以看出,USART1只有一种重映射,即一旦映射,USART1的每一个功能引脚TX和RX都重新选泽,而对于USART3,存在部分重映射和完全重映射。所谓部分重映射就是部分管脚和默认的是一样的,而部分管脚是重新映射到其他管脚。而完全重映射就是所有管脚都重新映射到其他管脚。如图所示USART2重映射对应的表格:

& K9 Z% E7 c5 B# E; `1 Z
4.7.jpg

8 f' \. G# C, c8 c% s6 X4 ]% m
如果要使用USART3的部分重映射功能,我们需要调用函数方法为:
4.8.png
% _; C) y+ y, C$ P+ V6 a
文章出处: 兜兜的小白之旅

3 F$ r$ ?, {& c0 d3 R
收藏 评论0 发布时间:2021-4-16 14:16

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版