[技术问答] N76E003 flash模拟EEPROM官方包里的程序看不懂

[复制链接]
1816|10
 楼主| nj786c 发表于 2019-3-3 23:39 | 显示全部楼层 |阅读模式
UINT8 Read_APROM_BYTE(UINT16 code *u16_addr)
{
        UINT8 rdata;
        rdata = *u16_addr>>8;//没看明白为什么右移8
        return rdata;
}
没看明白为什么右移8?官方包的程序
二九结狐六体 发表于 2019-3-4 09:24 | 显示全部楼层
等大佬来啊吧!
jasontu 发表于 2019-3-4 10:22 | 显示全部楼层
主要編譯器將acc清除。
Capture.PNG
奔跑的牛 发表于 2019-3-4 11:15 | 显示全部楼层
keil c51 是大端数据
天灵灵地灵灵 发表于 2019-3-4 19:17 | 显示全部楼层
看这个函数的返回值,以及要返回的内容。这种我就直接用库函数,一般不问缘由
 楼主| nj786c 发表于 2019-3-5 12:05 | 显示全部楼层
奔跑的牛 发表于 2019-3-4 11:15
keil c51 是大端数据

你意思应该是 *(u16_addr>>8),但是*的优先级比>>高啊!?
antusheng 发表于 2019-3-5 13:31 | 显示全部楼层
不知道这个优先级顺序。单独写个测试实施看。
 楼主| nj786c 发表于 2019-3-17 20:37 | 显示全部楼层
jasontu 发表于 2019-3-4 10:22
主要編譯器將acc清除。

从C语言的角度怎样理解呢?首先地址u16_addr中的内容是8位的,右移了8位,岂不是把地址中的内容变为ox00了吗?再送给rdata应该全部是零啊
 楼主| nj786c 发表于 2019-3-20 16:33 | 显示全部楼层
先感谢大家的支持,我想自己来结贴UINT16 code *u16_addr定义了指针变量指向的是16位整形,又因为C51是大端数据格式,所以右移8。谢谢大家。
不会打字 发表于 2020-8-6 14:58 | 显示全部楼层
nj786c 发表于 2019-3-20 16:33
先感谢大家的支持,我想自己来结贴UINT16 code *u16_addr定义了指针变量指向的是16位整形,又因为C51是大端 ...

大端数据格式是啥

评论

16位数据高低字节排列顺序,大端格式高字节在前  发表于 2020-10-16 15:03
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

19

帖子

0

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