OpenEdv-开源电子网

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

stm32 IO口地址映射 位带操作的问题

[复制链接]

20

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2014-7-22
在线时间
18 小时
发表于 2019-6-11 16:54:42 | 显示全部楼层 |阅读模式
原子老师:
sys.h 里的代码如下
#define PAout(n)   BIT_ADDR(GPIOA_ODR_Addr,n)

疑点:
PAout(0)~PAout(15) ,也就是n的值应该为0~15,但在位带操作
BITBAND(addr, bitnum)中 bitnum的值为0~7,也就是只有8位,8~15位超出了
bitnum的值,这样怎么来进行处理呢?
或我那个地方理解错了?

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

使用道具 举报

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
247
金钱
247
注册时间
2014-10-22
在线时间
40 小时
发表于 2019-6-12 16:40:27 | 显示全部楼层
回复 支持 反对

使用道具 举报

20

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2014-7-22
在线时间
18 小时
 楼主| 发表于 2019-6-16 11:54:43 | 显示全部楼层

能不能这样理解:
GPIOA_ODR_Addr    (GPIOA_BASE+12) //0x4001080C

GPIOB_ODR_Addr    (GPIOB_BASE+12) //0x40010C0C

GPIOA_ODR_Addr对应的 BITBAND的启始地址为:0x42010980
GPIOB_ODR_Addr对应的 BITBAND的启始地址为:0x42010D80
A到B的地址空间有OxD80-980=1024个存储单元,而n=0~15 ,只需要16×4=64个单元就可以了,也就是还有960个存储单元是空闲的?
回复 支持 反对

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4519
金钱
4519
注册时间
2018-5-11
在线时间
946 小时
发表于 2019-6-16 19:32:36 | 显示全部楼层
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4519
金钱
4519
注册时间
2018-5-11
在线时间
946 小时
发表于 2019-6-16 19:34:10 | 显示全部楼层
进一步地,还有此帖http://www.openedv.com/forum.php?mod=viewthread&tid=294788
有问题可以探讨
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
247
金钱
247
注册时间
2014-10-22
在线时间
40 小时
发表于 2019-6-17 09:36:20 | 显示全部楼层
warship 发表于 2019-6-16 19:32
研究一下我的这个帖子http://www.openedv.com/forum.php?mod=viewthread&tid=274196

你的做法毫无意义
回复 支持 反对

使用道具 举报

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
247
金钱
247
注册时间
2014-10-22
在线时间
40 小时
发表于 2019-6-17 09:42:23 | 显示全部楼层
luolingy 发表于 2019-6-16 11:54
能不能这样理解:
GPIOA_ODR_Addr    (GPIOA_BASE+12) //0x4001080C

寄存器里面的地址分配不是按照你自己的理解分配的,具体你可以看寄存器手册,除了ODR寄存器还有IDR寄存器的。你纠结这个意义不大
回复 支持 反对

使用道具 举报

13

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
407
金钱
407
注册时间
2016-5-26
在线时间
108 小时
发表于 2019-7-4 09:49:21 | 显示全部楼层
小哥,你这从那个地方看出这个bitnum 值为0-7呢?贴个图看看。我还是纠结,这个bitnum 是C语言中的bit 类型,原来 是的叫bitnum .
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 07:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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