[STM32F1] 关于指针的问题??

[复制链接]
1450|9
 楼主| hk386 发表于 2018-7-14 09:44 | 显示全部楼层 |阅读模式
刚刚开始看STM32的书,听说里面用到很多指针,刚刚看到一个这样的GPIOB的ODR地址是0x40010c0c
然后赋值  *(unsigned int *)(0x40010c0c)=0xffff.  看懂这个了,然后我就想着去51那里试下,P3口地址是0XB0,然后我把P3口用*(unsigned int *)(0xb0)=0xff,可是无效,*(unsigned char *)(0xb0)=0xff也无效,这个是怎么回事啊?
734774645 发表于 2018-7-14 18:27 | 显示全部楼层
库函数操作你就不用考虑底层的了。
734774645 发表于 2018-7-14 18:27 | 显示全部楼层
ST的单片机跟51的是两码事
纪国圣 发表于 2018-7-14 21:28 | 显示全部楼层
51单片机的地址总线是16位的。
wahahaheihei 发表于 2018-7-14 23:55 来自手机 | 显示全部楼层
楼主想直接玩地址?
chongdongchen 发表于 2018-7-15 11:09 | 显示全部楼层
51寄存器行不通的,比较蛋疼
dingbo95 发表于 2018-7-15 19:37 | 显示全部楼层
结构体指针很简单的,多看C的书
花戒 发表于 2018-7-15 23:22 | 显示全部楼层
STM32把所有外设统一编址,使用同一套地址管理。51使用了不一样的编址方式,片内RAM(包括寄存器)使用00H-FFH地址,使用MOV 指令读写.片外RAM的地址范围是0000H到FFFFH,必须使用 MOVX 指令读写。可以看到寄存器和RAM使用的同一个地址不同读取方式。直接用指针读写一般读写的是片外RAM。
 楼主| hk386 发表于 2018-7-16 09:50 | 显示全部楼层
花戒 发表于 2018-7-15 23:22
STM32把所有外设统一编址,使用同一套地址管理。51使用了不一样的编址方式,片内RAM(包括寄存器)使用00H- ...

既然是有地址,那么可以用指针地址代表某个IO口,这样我该怎么做,还要的上面的地址是不是都是错误的,reg52.h里的文件的地址是代表什么,片外还是片内的
wowu 发表于 2018-7-19 13:28 | 显示全部楼层
咱们不用操心这些东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

650

帖子

0

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