找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于IIC读写EEPROM程序,不太懂为什么要用到进借位sda=CY

查看数: 4629 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-4-27 20:04

正文摘要:

昨天获得了一份实机能用的IIC读写EEPROM的源码,在分析的过程中对于  “IIC的发送”  这一部分存在疑惑,思考&&搜索无果后想来请教大佬,如图的红圈所示:1. sda=CY; 不太懂为什么要用到 ...

回复

ID:609524 发表于 2021-5-14 14:50
ZXWPL 发表于 2021-5-14 14:41
反正就是读temp的位而已。可以这样啊
for(i=0x80;i>0;i>>=1)
{

好的谢谢
ID:487569 发表于 2021-5-14 14:41
杨天想 发表于 2021-5-14 09:52
大佬那有的芯片不支持cy这个写发怎么办

反正就是读temp的位而已。可以这样啊
for(i=0x80;i>0;i>>=1)
{
        scl=0;
        delay();
        if(temp&i)
        {
                sda=1;
        }
        else
        {
                sda=0;
        }
        delay();
        scl=1;
        delay();

}
ID:609524 发表于 2021-5-14 09:52
hhdsdy 发表于 2021-4-28 10:32
1:IIC的数据是从高位开始的,所以要用左移指令比较合适,而C语言的左移和右移指令,CY是参与其中的,左移 ...

大佬那有的芯片不支持cy这个写发怎么办
ID:825513 发表于 2021-5-5 20:24
人人学会单片机 发表于 2021-4-28 12:42
可以参考我的贴子 DS3231的时序

好的,谢谢
ID:825513 发表于 2021-5-5 20:21
hhdsdy 发表于 2021-4-28 10:32
1:IIC的数据是从高位开始的,所以要用左移指令比较合适,而C语言的左移和右移指令,CY是参与其中的,左移 ...

原来是这样,我懂了,非常感谢大佬的解答
ID:390416 发表于 2021-4-28 12:42
可以参考我的贴子 DS3231的时序
ID:88256 发表于 2021-4-28 10:32
1:IIC的数据是从高位开始的,所以要用左移指令比较合适,而C语言的左移和右移指令,CY是参与其中的,左移指令中,移动一位,D7的内容就移给了CY,这就是为什么要用到CY的原因了,CY并不是只有进位和借位才会用到的。
2:器件时序的差异,一般IIC是需要一定的延时的,否则容易造成因来不及响应而出错,这个可以看IIC器件的时序要求。至于SCL和SDA什么时候为0什么时候为1电平,这个就是IIC的规范了,按要求做就是了。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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