OpenEdv-开源电子网

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

在flash模拟E2PROM实验中这个*(vu16*)faddr; 函数的理解

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-4-27
在线时间
2 小时
发表于 2019-6-22 15:58:21 | 显示全部楼层 |阅读模式
*(vu16*)faddr; 总觉得将一个32位的地址强制转换为16位的指针,在取16位指针地址,不太理解怎么取出来的就是一个16位的数据了,然后将32位地址+2,就可以取下一个16位数据了,求大神解难
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4520
金钱
4520
注册时间
2018-5-11
在线时间
946 小时
发表于 2019-6-22 16:12:53 | 显示全部楼层

*(vu16*)faddr; 正确的说法应该是:把一个32位的数值转换为指向16位变量的指针,然后取在这个地址所存放的变量的值。
所谓的指针就是地址,在STM32中,地址空间是32位的,所以把一个32的数强制转换为地址刚好而已。
所有的指针其地址含义都是存储变量的首地址,变量类型不同,具体所占用的空间不同,对于vu16就是16位变量,占用2个字节。
所以下一个变量的地址必须将32位地址+2
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 1 反对 0

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-4-27
在线时间
2 小时
 楼主| 发表于 2019-6-22 17:04:18 | 显示全部楼层
warship 发表于 2019-6-22 16:12
*(vu16*)faddr; 正确的说法应该是:把一个32位的数值转换为指向16位变量的指针,然后取在这个地址所存放 ...

您好谢谢您的回答,可是我还是不太懂32位的地址值强制转换为16位的地址(是不是意味着丢掉高16位的地址值),然后就是取出这个16位的地址变量所对应的数值为什么就是16位的数据了
回复 支持 反对

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4520
金钱
4520
注册时间
2018-5-11
在线时间
946 小时
发表于 2019-6-22 21:09:57 | 显示全部楼层
李韬sust 发表于 2019-6-22 17:04
您好谢谢您的回答,可是我还是不太懂32位的地址值强制转换为16位的地址(是不是意味着丢掉高16位的地址值 ...

你是真的没有搞清楚地址的含义,
不是把32位的地址值强制转换为16位的地址
是把32位的数值强制转换为32位的地址(这个地址指向16位的变量)
一点损失都没有!!!
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4520
金钱
4520
注册时间
2018-5-11
在线时间
946 小时
发表于 2019-6-22 21:21:11 | 显示全部楼层
MCU的地址都是32位的,
地址(或说是指针)可以指向各种类型,
可以是8位变量、16位变量、32位变量、结构变量、函数入口、另一指针等等,
非常非常广泛和灵活,指针是C语言的精华,一定要搞懂。
一个指针被确定类型后,从这个指针取出的就是它指向类型的长度,
如果一个指针(对于MCU一定是32位长度的)指向的是16位变量(如vu16),
则从这个指针取出的就一定是一个16位值。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-4-27
在线时间
2 小时
 楼主| 发表于 2019-6-23 11:25:06 | 显示全部楼层
warship 发表于 2019-6-22 21:21
MCU的地址都是32位的,
地址(或说是指针)可以指向各种类型,
可以是8位变量、16位变量、32位变量、结构 ...

好的我知道了谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 08:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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