官方可否出一个健壮的硬件IIC程序
现在用你们官方出的硬件IIC程序,程序经常卡死,如果开了芯片中断,就没法用,现在每次用iic都要先关中断,出来了在开中断,但是还是经常卡死,/**********************************************
// IIC Write Data
**********************************************/
void Write_IIC_Data(unsigned char IIC_Data)
{
IICCON&=~SI;
IICCON|=STA; //启动
while((!(IICCON&SI))&&(IICSTA!=0x08));
IICCON&=~STA;
IICCON&=~SI;
IICDAT=0x78; //数据1
while(IICSTA!=0x18);//卡死
IICCON&=~SI;
IICDAT=0x40;
while(IICSTA!=0x28);//卡死
IICCON&=~SI;
IICDAT=IIC_Data;
while(IICSTA!=0x28);//卡死
IICCON&=~SI;
IICCON|=STO; //STA=1;
}
如果使用了官方的触摸库,卡死特别频繁
卡死的时候 IICSTA 是多少?波形什么样?
while(IICSTA!=0x18);//卡死 ====》替代为下面代码
delay(10us);
if(IICSTA!=0x18) { 输出触发信号,让示波器把SCL和SDA抓下来;备份此时IICSTA到全局调试变量; while(1);}
主要问题不是要观察当时卡死是什么波形或者原因,要的是如果卡死,程序不会卡死,可以容错,或者说重写读写数据 顶贴支持下 规格书好像都没有硬件i2c
这个硬件i2c可以在哪里找到 有的,你是不是用看错芯片的规格书 我觉得是楼主自己的问题 不是芯片的问题 确实,这部分代码遇到有中断经常卡死,io模拟读取iic又有问题,用官方这套中断后就卡死 lankii35 发表于 2019-12-7 11:53
确实,这部分代码遇到有中断经常卡死,io模拟读取iic又有问题,用官方这套中断后就卡死 ...
奇怪我用的一直很好{:shocked:} 硬件iic和模拟iic有什么区别 模拟IIC是需要了解IIC的协议 模拟IIC的流程更清楚一些。 模拟IIC可以在任何管脚上吧 期待吧 现在有相关的程序吗? 硬件有几个硬件iic 硬件IIC怎么接收不同字节的长度的数据 模拟iic还是使用硬件iic,哪个更好 楼主有相关的代码吗?