[STM32F1] 指针的问题

[复制链接]
 楼主| xxrs 发表于 2020-1-21 23:11 | 显示全部楼层 |阅读模式
刚刚开始看STM32的书,听说里面用到很多指针,刚刚看到一个这样的GPIOB的ODR地址是0x40010c0c
然后赋值  *(unsigned int *)(0x40010c0c)=0xffff.  看懂这个了,然后我就想着去51那里试下,P3口地址是0XB0,然后我把P3口用*(unsigned int *)(0xb0)=0xff,可是无效,*(unsigned char *)(0xb0)=0xff也无效,这个是怎么回事啊?
gongche 发表于 2020-1-21 23:13 | 显示全部楼层
库函数操作你就不用考虑底层的了。
huwr 发表于 2020-1-21 23:16 | 显示全部楼层
ST的单片机跟51的是两码事
tian111 发表于 2020-1-21 23:21 | 显示全部楼层
51单片机的地址总线是16位的。
chuxh 发表于 2020-1-21 23:24 | 显示全部楼层
楼主想直接玩地址?
stly 发表于 2020-1-21 23:27 | 显示全部楼层
51寄存器行不通的,比较蛋疼
dingy 发表于 2020-1-21 23:30 | 显示全部楼层
结构体指针很简单的,多看C的书
guoyt 发表于 2020-1-21 23:33 | 显示全部楼层
STM32把所有外设统一编址,使用同一套地址管理。51使用了不一样的编址方式,片内RAM(包括寄存器)使用00H-FFH地址,使用MOV 指令读写.片外RAM的地址范围是0000H到FFFFH,必须使用 MOVX 指令读写。
 楼主| xxrs 发表于 2020-1-21 23:36 | 显示全部楼层
可以看到寄存器和RAM使用的同一个地址不同读取方式
yinxiangh 发表于 2020-1-21 23:41 | 显示全部楼层
直接用指针读写一般读写的是片外RAM。
chenjunt 发表于 2020-1-21 23:43 | 显示全部楼层
既然是有地址,那么可以用指针地址代表某个IO口,这样我该怎么做,还要的上面的地址是不是都是错误的,reg52.h里的文件的地址是代表什么,片外还是片内的
xxmmi 发表于 2020-1-21 23:45 | 显示全部楼层
咱们不用操心这些东西
 楼主| xxrs 发表于 2020-1-21 23:47 | 显示全部楼层

好的,我明天去单位试一下,多谢各位大侠了哈        
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部