找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4065|回复: 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();

}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

地板
ID:616268 发表于 2019-9-25 17:15 | 只看该作者
根据实际情况来吧!可以定时发送不管有没有应答,大不了接收不到数据而已
回复

使用道具 举报

5#
ID:123289 发表于 2019-9-26 15:59 | 只看该作者
这取决你的整体设计的目的是什么?停与不停对达成目的的影响是什么?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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