打印
[STM32F1]

关于指针的问题??

[复制链接]
1040|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位的。

使用特权

评论回复
5
wahahaheihei| | 2018-7-14 23:55 | 只看该作者
楼主想直接玩地址?

使用特权

评论回复
6
chongdongchen| | 2018-7-15 11:09 | 只看该作者
51寄存器行不通的,比较蛋疼

使用特权

评论回复
7
dingbo95| | 2018-7-15 19:37 | 只看该作者
结构体指针很简单的,多看C的书

使用特权

评论回复
8
花戒| | 2018-7-15 23:22 | 只看该作者
STM32把所有外设统一编址,使用同一套地址管理。51使用了不一样的编址方式,片内RAM(包括寄存器)使用00H-FFH地址,使用MOV 指令读写.片外RAM的地址范围是0000H到FFFFH,必须使用 MOVX 指令读写。可以看到寄存器和RAM使用的同一个地址不同读取方式。直接用指针读写一般读写的是片外RAM。

使用特权

评论回复
9
hk386|  楼主 | 2018-7-16 09:50 | 只看该作者
花戒 发表于 2018-7-15 23:22
STM32把所有外设统一编址,使用同一套地址管理。51使用了不一样的编址方式,片内RAM(包括寄存器)使用00H- ...

既然是有地址,那么可以用指针地址代表某个IO口,这样我该怎么做,还要的上面的地址是不是都是错误的,reg52.h里的文件的地址是代表什么,片外还是片内的

使用特权

评论回复
10
wowu| | 2018-7-19 13:28 | 只看该作者
咱们不用操心这些东西

使用特权

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

本版积分规则

22

主题

602

帖子

0

粉丝