IIC程序问题
答案:2 悬赏:20 手机版
解决时间 2021-02-09 12:38
- 提问者网友:沦陷
- 2021-02-08 20:54
IIC程序问题
最佳答案
- 五星知识达人网友:春色三分
- 2021-02-08 21:48
ReadAddr是个16bit的数据,可分为高8bit和低8bit
两个可能:
1.高8位为寄存器地址的高8位,低8位为寄存器地址的低8位。就像if里面走的
2.高8位为从机地址(slave地址)的一部分,也是7位的slave地址(所以要左移一位(ReadAddr/256)<<1),而且是以0xA0为基址的从机地址,所以从机地址应该是:(0xA0+((ReadAddr/256)<<1)),低8位为寄存器地址的低8位。就像else里面的走的
以上 是我的理解 可能有所偏差
两个可能:
1.高8位为寄存器地址的高8位,低8位为寄存器地址的低8位。就像if里面走的
2.高8位为从机地址(slave地址)的一部分,也是7位的slave地址(所以要左移一位(ReadAddr/256)<<1),而且是以0xA0为基址的从机地址,所以从机地址应该是:(0xA0+((ReadAddr/256)<<1)),低8位为寄存器地址的低8位。就像else里面的走的
以上 是我的理解 可能有所偏差
全部回答
- 1楼网友:梦中风几里
- 2021-02-08 23:03
0xA0+((ReadAddr/256)<<1)); 这个只是一个字节。程序在执行的时候是先计算,然后再执行发送的任务的。这个命令字节应该是由几部分组成的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯