i2c通信协议(I2C数据协议)
精选知识2024-02-07 17:40:19
导读大家好,小牌来为大家解答以上的问题。i2c通信协议,I2C数据协议这个很多人还不知道,现在让我们一起来看看吧!1、没有去查I2C的协议,但是读
大家好,小牌来为大家解答以上的问题。i2c通信协议,I2C数据协议这个很多人还不知道,现在让我们一起来看看吧!
1、没有去查I2C的协议,但是读写位是LSB(低位)方向的,而读写位后发,所以可以推测应该是MSB(高位)先发的。
2、上面两段程序如果只从SDA的赋值情况的话(其他逻辑我没有细看),两段程序有可能都可以:1. 先把最高位移到CY里面,再赋值,应该很好理解2. 先由temp&0x80判断的temp的最高位,并把结果赋给SDA:这种赋值法要看编译器支持,因为SDA是一位,temp&0x80的结果是一个byte,也有写成SDA=(temp&0x80 != 0)就是把表达式的结果true or false当成1,0赋值给SDA, 实际上翻译过来就是 if(temp&0x80 != 0) { SDA=1;}else{ SDA=0;} 这些都要看编译器支持,然后才移位。
3、怎么知道你的编译器是否支持这种写法呢?很简单,你要查看编译器生成的汇编文件,看看汇编代码是否正确。
4、不过强烈建议不要用这种写法,尽量让你的代码比较通用。
本文到此分享完毕,希望对大家有所帮助。
免责声明:本文由用户上传,如有侵权请联系删除!