找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4265|回复: 4
收起左侧

关于I2C总线通信的问题,主机发数据给从机没有应答,主机该停止发送吗?

[复制链接]
ID:616214 发表于 2019-9-25 15:32 | 显示全部楼层 |阅读模式
请教一下大家关于I2C总线通信的问题:当主机给从机发数据而从机没有应答的时候,主机是应该停止发数据不是吗?为什么我看的很多例程里面都没有相关的处理?希望懂的能帮我解决这个疑惑。
void respons()
{
     uchar i=0;
     scl=1;
    delay();
   while((sda==1)&&(i<255))
      i++;
     scl=0;
    delay();

}
回复

使用道具 举报

ID:351097 发表于 2019-9-25 15:55 | 显示全部楼层
如果从机没回应,可能从机异常或者从机正在处理其他事件,主机应等待从机正常再发送数据给从机,如果主机多次发送没有得到回应的话,则可认为从机异常,主机不必再发数据。
回复

使用道具 举报

ID:401564 发表于 2019-9-25 17:05 | 显示全部楼层
大多教程上是不会有什么处理的,人家是想告诉你是怎么进行通讯的,或者是想表达一下这个通讯协议
你给的代码好像是一共查询255次SDA线吧,超过这个次数就退出循环了

我是用汇编的,一般设定查询几千次左右,如果没有响应的话,会重新发送一次,重新发送十几次都不成功的话,就会有提示的
回复

使用道具 举报

ID:616268 发表于 2019-9-25 17:15 | 显示全部楼层
根据实际情况来吧!可以定时发送不管有没有应答,大不了接收不到数据而已
回复

使用道具 举报

ID:123289 发表于 2019-9-26 15:59 | 显示全部楼层
这取决你的整体设计的目的是什么?停与不停对达成目的的影响是什么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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