iic非正常应答可能原因是什么
1个回答
展开全部
IIC中的应答是由从机在第9个SCL周期拉低SDA实现的
若不能产生应答或者说是在第9个周期使SDA为高电平即非应答则说明从机忙或者有其他的原因无法响应,主机应该发送停止或者重新开始发送 而应答说明了主机发送的一字节数从机已经收到,可以继续操作
若不能产生应答或者说是在第9个周期使SDA为高电平即非应答则说明从机忙或者有其他的原因无法响应,主机应该发送停止或者重新开始发送 而应答说明了主机发送的一字节数从机已经收到,可以继续操作
追问
从机在第9个SCL周期拉低SDA的时间有多久?为什么我的程序里主机从来都没有接收到正常应答呢?下面是我的应答检查子程序:若无应答,亮灯显示并结束程序。(延时足够长,11.0592的晶振,延时超过十二个周期)
bit TestAck()
{
SDA=1;DelayMs(1);
SCL=1;DelayMs(1);
if(SDA)
{P17=0;while(1);}
SCL=0;DelayMs(1);
}
迪凯特科技(北京)有限公司_
2025-01-03 广告
2025-01-03 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特...
点击进入详情页
本回答由迪凯特科技(北京)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询