[技术支持] 官方可否出一个健壮的硬件IIC程序

[复制链接]
827|6
 楼主 | 2017-8-29 11:56 | 显示全部楼层 |阅读模式
现在用你们官方出的硬件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;
}


如果使用了官方的触摸库,卡死特别频繁
| 2017-11-12 00:48 | 显示全部楼层
卡死的时候 IICSTA 是多少?  波形什么样?
while(IICSTA!=0x18);//卡死 ====》替代为下面代码

delay(10us);
if(IICSTA!=0x18) { 输出触发信号,让示波器把SCL和SDA抓下来;备份此时IICSTA到全局调试变量; while(1);}
 楼主 | 2017-11-22 22:56 | 显示全部楼层
主要问题不是要观察当时卡死是什么波形或者原因,要的是如果卡死,程序不会卡死,可以容错,或者说重写读写数据
| 2017-11-23 08:45 | 显示全部楼层
顶贴支持下
| 2017-12-14 15:59 | 显示全部楼层
规格书好像都没有硬件i2c
这个硬件i2c可以在哪里找到
 楼主 | 2018-1-4 20:27 | 显示全部楼层
有的,你是不是用看错芯片的规格书
| 2018-7-14 21:17 | 显示全部楼层
我觉得是楼主自己的问题   不是芯片的问题
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

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