OpenEdv-开源电子网

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

STM32F103C8T6,使用 keil5 HAL库,位带 BITBAND 操作失灵,急问

[复制链接]

12

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2014-10-30
在线时间
98 小时
发表于 2021-11-17 09:56:39 | 显示全部楼层 |阅读模式
各位大神,早上好!
今天用STM32F103C8T6,使用 keil5 HAL库, 位带 BITBAND 的读写操作都不能工作。 只有用 HAL_GPIO_ReadPin  和 HAL_GPIO_WritePin 才能正常操作。

哪位大侠指点下,多谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2014-10-30
在线时间
98 小时
 楼主| 发表于 2021-11-17 10:03:04 | 显示全部楼层
补充下,位带操作使用原子哥的方法,如下, 多谢各位大神

#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))
#define MEM_ADDR(addr)  *((volatile unsigned long  *)(addr))
#define BIT_ADDR(addr, bitnum)   MEM_ADDR(BITBAND(addr, bitnum))
//IO口地址映射
#define GPIOA_ODR_Addr    (GPIOA_BASE+20) //0x40020014
#define GPIOB_ODR_Addr    (GPIOB_BASE+20) //0x40020414
回复 支持 反对

使用道具 举报

0

主题

668

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
金钱
1926
注册时间
2021-8-13
在线时间
262 小时
发表于 2021-11-17 10:11:33 | 显示全部楼层
帮顶            
回复 支持 反对

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2101
金钱
2101
注册时间
2021-7-17
在线时间
658 小时
发表于 2021-11-17 10:16:23 | 显示全部楼层
帮顶   
回复 支持 反对

使用道具 举报

12

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2014-10-30
在线时间
98 小时
 楼主| 发表于 2021-11-17 11:45:20 | 显示全部楼层
补充一下,下面的位带操作是不行的,只有HAL库可以,太奇怪,有没有朋友遇到过?
        PCout(13)=1;
        HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13, GPIO_PIN_SET);
回复 支持 反对

使用道具 举报

18

主题

190

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1068
金钱
1068
注册时间
2012-6-18
在线时间
158 小时
发表于 2021-11-19 23:08:11 | 显示全部楼层
keil 回滚到 5.24前。cubemx回滚到19年的库可以。目前升级keil 5.36 cubemx 最新的hal 库后就这样。自从f7出来后我遇到这个问题只有修改一起的代码。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 16:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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