OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4298|回复: 5

IO口有多个复用功能,如何确定复用后的是哪一个?

[复制链接]

5

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2016-1-1
在线时间
20 小时
发表于 2022-3-25 19:38:06 | 显示全部楼层 |阅读模式
20金钱
IO口有多个复用功能,在配置一个IO口为复用推挽输出后,单片机如何知道我想复用的是哪一个功能的呢?

还有如果我想用一个资源的重映射,映射到PAx上了,那就要吧PAx设置为复用功能。是不是能这么理解:如果要用一个功能的重映射,一定要把映射到的那个IO引脚设置为复用功能。

那么问题又来了,当把一个IO设置成复用输出之后,如何确定这个IO引脚的功能是复用的哪一个呢?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
发表于 2022-3-25 19:51:51 | 显示全部楼层
复用的时候会有一个默认的功能 如果用默认以外的 还要配上重映射才行 其中还包括部分重映射 完全重映射
这里配置的不同 引脚功能就不同
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2022-3-26 00:34:03 | 显示全部楼层
F103没法选择,所以使用的时候,得小心点。
回复

使用道具 举报

10

主题

75

帖子

0

精华

高级会员

Rank: 4

积分
670
金钱
670
注册时间
2014-4-12
在线时间
194 小时
发表于 2022-3-26 10:04:08 | 显示全部楼层
本帖最后由 ringhui 于 2022-3-26 10:07 编辑

多复用的话,找datasheet里面这个表,初始化IO的时候按照例程
#define USART1_CLK_ENABLE()              __HAL_RCC_USART1_CLK_ENABLE()

#define USART1_TX_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOC_CLK_ENABLE()
#define USART1_TX_GPIO_PORT              GPIOC
#define USART1_TX_PIN                    GPIO_PIN_4
#define USART1_TX_AF                     GPIO_AF1_USART1

#define USART1_RX_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOC_CLK_ENABLE()
#define USART1_RX_GPIO_PORT              GPIOC
#define USART1_RX_PIN                    GPIO_PIN_5
#define USART1_RX_AF                     GPIO_AF1_USART1

  GPIO_InitStruct.Pin       = USART1_TX_PIN | USART1_RX_PIN;
  GPIO_InitStruct.Mode      = GPIO_MODE_AF_PP;
  GPIO_InitStruct.Pull      = GPIO_NOPULL;
  GPIO_InitStruct.Speed     = GPIO_SPEED_FREQ_LOW;
  GPIO_InitStruct.Alternate = USART1_TX_AF;
  HAL_GPIO_Init(USART1_TX_GPIO_PORT, &GPIO_InitStruct);

STM32G0 IO复用表

STM32G0 IO复用表
2.png
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2022-3-27 21:37:21 | 显示全部楼层
ringhui 发表于 2022-3-26 10:04
多复用的话,找datasheet里面这个表,初始化IO的时候按照例程
#define USART1_CLK_ENABLE()               ...

F103没得选
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2016-1-1
在线时间
20 小时
 楼主| 发表于 2022-3-28 21:35:46 | 显示全部楼层

没得选是什么意思,就是只要把一个IO口设置成复用输出之后,复用到哪一个功能就确定了吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 17:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表