打印
[技术问答]

I2C主机死机

[复制链接]
301|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2022-11-18 09:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主机死机。
现象:部分脉冲后波形不再变化。

else if(u32Status == 0x58)  /* DATA has been received and NACK has been returned */

{

    g_u8MstRxData = (unsigned char) I2C_GET_DATA(I2C0);

    if(g_u8MstRxData != 0x0D)

    {

        printf("Received data error.\n");

        while(1);

     }

     I2C_SET_CONTROL_REG(I2C0, I2C_CTL_STO_SI);

     g_u8MstEndFlag = 1;

}


使用特权

评论回复
沙发
cr315| | 2022-11-19 09:00 | 只看该作者
说明:当主机发送部分脉冲后,没有收到停止位,而波形不再变化。主机一开始能正常输出波形,说明主机外设配置正确,而后面不再输出,很可能是主机程序死循环到某些地方了。
当发生这种问题后可以去debug主机,查看代码走到哪里了。
解决:避免I2C传输过程中设置死循环。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1481

主题

4247

帖子

6

粉丝