打印
[STM32F1]

指针的问题

[复制链接]
363|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxrs|  楼主 | 2022-1-2 12:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚刚开始看STM32的书,听说里面用到很多指针,刚刚看到一个这样的GPIOB的ODR地址是0x40010c0c
然后赋值  *(unsigned int *)(0x40010c0c)=0xffff.  看懂这个了,然后我就想着去51那里试下,P3口地址是0XB0,然后我把P3口用*(unsigned int *)(0xb0)=0xff,可是无效,*(unsigned char *)(0xb0)=0xff也无效,这个是怎么回事啊?

使用特权

评论回复
沙发
wyjie| | 2022-1-2 12:11 | 只看该作者
库函数操作你就不用考虑底层的了。

使用特权

评论回复
板凳
dingy| | 2022-1-2 12:13 | 只看该作者
ST的单片机跟51的是两码事

使用特权

评论回复
地板
ousj| | 2022-1-2 12:15 | 只看该作者
51单片机的地址总线是16位的。

使用特权

评论回复
5
jiajs| | 2022-1-2 12:16 | 只看该作者
楼主想直接玩地址?

使用特权

评论回复
6
stly| | 2022-1-2 12:18 | 只看该作者
51寄存器行不通的,比较蛋疼

使用特权

评论回复
7
dingy| | 2022-1-2 12:20 | 只看该作者
结构体指针很简单的,多看C的书

使用特权

评论回复
8
guoyt| | 2022-1-2 12:22 | 只看该作者
STM32把所有外设统一编址,使用同一套地址管理。51使用了不一样的编址方式,片内RAM(包括寄存器)使用00H-FFH地址,使用MOV 指令读写.片外RAM的地址范围是0000H到FFFFH,必须使用 MOVX 指令读写。

使用特权

评论回复
9
xxrs|  楼主 | 2022-1-2 12:24 | 只看该作者
可以看到寄存器和RAM使用的同一个地址不同读取方式

使用特权

评论回复
10
yinxiangh| | 2022-1-2 12:27 | 只看该作者
直接用指针读写一般读写的是片外RAM。

使用特权

评论回复
11
jlyuan| | 2022-1-2 12:29 | 只看该作者
既然是有地址,那么可以用指针地址代表某个IO口,这样我该怎么做,还要的上面的地址是不是都是错误的,reg52.h里的文件的地址是代表什么,片外还是片内的

使用特权

评论回复
12
xxmmi| | 2022-1-2 12:31 | 只看该作者
咱们不用操心这些东西

使用特权

评论回复
13
xxrs|  楼主 | 2022-1-2 12:35 | 只看该作者
好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝