ZXWPL 发表于 2021-5-14 14:41 好的谢谢 |
杨天想 发表于 2021-5-14 09:52 反正就是读temp的位而已。可以这样啊 for(i=0x80;i>0;i>>=1) { scl=0; delay(); if(temp&i) { sda=1; } else { sda=0; } delay(); scl=1; delay(); } |
hhdsdy 发表于 2021-4-28 10:32 大佬那有的芯片不支持cy这个写发怎么办 |
人人学会单片机 发表于 2021-4-28 12:42 好的,谢谢 |
hhdsdy 发表于 2021-4-28 10:32 原来是这样,我懂了,非常感谢大佬的解答 ![]() |
| 可以参考我的贴子 DS3231的时序 |
|
1:IIC的数据是从高位开始的,所以要用左移指令比较合适,而C语言的左移和右移指令,CY是参与其中的,左移指令中,移动一位,D7的内容就移给了CY,这就是为什么要用到CY的原因了,CY并不是只有进位和借位才会用到的。 2:器件时序的差异,一般IIC是需要一定的延时的,否则容易造成因来不及响应而出错,这个可以看IIC器件的时序要求。至于SCL和SDA什么时候为0什么时候为1电平,这个就是IIC的规范了,按要求做就是了。 |