找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2196|回复: 10
收起左侧

关于IIC的应答,请各位大佬帮帮忙,刚刚学51单片机

[复制链接]
ID:808940 发表于 2020-8-13 21:20 来自手机 | 显示全部楼层 |阅读模式
5黑币
这里的应答怎么理解,还有后面的I2cReadRespon怎么注释了

1597324697053.jpg
1597324790778.jpg
回复

使用道具 举报

ID:813988 发表于 2020-8-13 21:53 | 显示全部楼层
对方连续发送的时候,也可以不产生应答
回复

使用道具 举报

ID:401564 发表于 2020-8-13 22:03 | 显示全部楼层
C语言不会
IIC的应答是这样子的:不管是读还是写,每8个位(一个字节)之后,一定要有一个应答.
向IIC器件写入:写入完成一个字节之后,由IIC器件产生应答(低电平),单片机等待低电平,出现低电平就表示器件已经有了应答
读取:在读取完一个字节之后,由单片机向IIC器件发送应答信号(低电平)
回复

使用道具 举报

ID:808940 发表于 2020-8-13 22:42 来自手机 | 显示全部楼层
还有在主机发送应答哪里,等待应答是SCL=1,不是应该为零才对嘛?
回复

使用道具 举报

ID:713023 发表于 2020-8-13 22:54 | 显示全部楼层
应答:
     200us时间内,等待从机回答一个ACK信号(就是拉低SDA);如果超过200us,从机不会答,则拉低SCL,等待下一个操作。
I2cReadRespon怎么注释了
    这个有没有后续程序?
    如果没有的话,I2CReadByte()函数最后第三步 把SCL 拉低了,就不用再重复低SCL。
回复

使用道具 举报

ID:654028 发表于 2020-8-14 09:36 | 显示全部楼层
应答就是从机告诉主机我在听你说话,你可以继续说。如果从机不在听主机说话,那么主机就不会接着往下说了。
51里面如果把io口置高就是输入模式。如果置低就是输出模式,显然应答是要把io口置高来接收从机的信息。
回复

使用道具 举报

ID:814108 发表于 2020-8-14 11:18 | 显示全部楼层
首先baiIIC通信要分清主机与从机的关系,在du主机对从机进行写操zhi作时,一般dao是在传送完一个数据之后单片机就进入检测应答信号状态:先将两个脚置位SDA=1;SCL=1;然后在一定时间内不断检测SDA脚的电平状态,比如说你弄个循环for(i=255;i>0;i--){..;if(...)break;...}进行不断判断,当SDA的电平为低时就跳出循环,说明此时从机已经ACK,就可说明是I2C器件拉低;如果为高时,则一直判断完整个循环,到最后还为高时,就说明没有应答。  2、写应答和读应答肯定有所区别的。写应答是在你读从机数据期间,当你接收到一个数据时,可以应答的(想继续通信就应答),就将SDA复位(拉低),不想应答(想结束通信时)就置位(SDA=1)。读应答则在主机写数据给从机期间,每当从机接收到一个数据就会应答一下(将数据SDA线拉低),主机将不断检测SDA线的电平,主机就是凭SDA的电平状态才知道从机是否已经正确地接收了主机发送的
回复

使用道具 举报

ID:808940 发表于 2020-8-14 11:45 来自手机 | 显示全部楼层
Y_G_G 发表于 2020-8-13 22:03
C语言不会
IIC的应答是这样子的:不管是读还是写,每8个位(一个字节)之后,一定要有一个应答.
向IIC器件写入 ...

哪为什么I2cReadRespon哪里注释了呢?
回复

使用道具 举报

ID:401564 发表于 2020-8-14 13:57 | 显示全部楼层
梯度 发表于 2020-8-14 11:45
哪为什么I2cReadRespon哪里注释了呢?

I2cReadRespon后面不是完整的代码,没有看到时钟的操作
读取数据的应答是为了告诉IIC器件下一个动作要做什么
应答:继续输出数据
不应答:停止输出数据
回复

使用道具 举报

ID:808940 发表于 2020-8-18 17:31 来自手机 | 显示全部楼层
Y_G_G 发表于 2020-8-14 13:57
I2cReadRespon后面不是完整的代码,没有看到时钟的操作
读取数据的应答是为了告诉IIC器件下一个动作要做 ...

好的,谢谢哈
回复

使用道具 举报

ID:808940 发表于 2020-8-18 17:34 来自手机 | 显示全部楼层
lp2323 发表于 2020-8-14 11:18
首先baiIIC通信要分清主机与从机的关系,在du主机对从机进行写操zhi作时,一般dao是在传送完一个数据之后单 ...

谢谢大佬的指教。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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