OpenEdv-开源电子网

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

STM32F407GPIO复用设置怎样配置的?

[复制链接]

6

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2019-8-3
在线时间
20 小时
发表于 2019-12-21 11:59:06 | 显示全部楼层 |阅读模式
10金钱
基于STM32F407(寄存器版)的GPIO复用功能的部分配置粘贴:
//GPIO复用设置
//BITx:0~15,代表IO口的引脚编号
//AFx:0~15 代表 AF0~AF15
//AF0:MCO/SWD/SWCLK/RTC   AF1:TIM1/TIM2;            AF2:TIM3~5;               AF3:TIM8~11
//AF4:I2C1~I2C3;          AF5:SPI1/SPI2;            AF6:SPI3;                 AF7:USART1~3;
//AF8:USART4~6;           AF9;CAN1/CAN2/TIM12~14    AF10:USB_OTG/USB_HS       AF11:ETH
//AF12:FSMC/SDIO/OTG/HS   AF13CIM                 AF14:                     AF15:EVENTOUT


void GPIO_AF_Set(GPIO_TypeDef* GPIOx,u8 BITx,u8 AFx)
{  
GPIOx->AFR[BITx>>3]&=~(0X0F<<((BITx&0X07)*4));
GPIOx->AFR[BITx>>3]|=(u32)AFx<<((BITx&0X07)*4);
}

我的理解是:每个PIN对应4个bit位,每4个bit位可以表示AF0~AF15中的任何一个。
我的疑惑是:1)为什么要左移3?BITx>>3?
                   2)为什么要&0X07?

最佳答案

查看完整内容[请看2#楼]

比如是GPIO_AF_Set(GPIOA,10,7);//PA10,AF7 1.这个是确定你要复用的是高位的IO还是低位的IO的,当要把10号IO复用是,就是高位的, 0为低位,1为高位,10>>3=>0x001;即是高位的 2.BITx&0X07=>0x001,10进制就是2*4=8,0x0f
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3624
金钱
3624
注册时间
2019-8-14
在线时间
1054 小时
发表于 2019-12-21 11:59:07 | 显示全部楼层

比如是GPIO_AF_Set(GPIOA,10,7);//PA10,AF7
1.[BITx>>3]这个是确定你要复用的是高位的IO还是低位的IO的,当要把10号IO复用是,就是高位的,
0为低位,1为高位,10>>3=>0x001;即是高位的
2.BITx&0X07=>0x001,10进制就是2*4=8,0x0f<<8=>就是PA10的位置


1.png
回复

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-12-22 11:57:23 | 显示全部楼层
帮顶                                                                                
成功没有捷径
回复

使用道具 举报

6

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2019-8-3
在线时间
20 小时
 楼主| 发表于 2019-12-22 16:16:09 | 显示全部楼层
上楼的兄弟(姐妹)
感谢你的帮助,这个问题我已经得到解决。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-12 10:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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