OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4737|回复: 2

硬件iic,EV6卡死问题,急求解决

[复制链接]

8

主题

28

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-9-20
在线时间
49 小时
发表于 2022-7-14 15:26:00 | 显示全部楼层 |阅读模式
40金钱
        while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));单步调试后卡死在这个循环中,下面是这个库函数。硬件为mpu9250和stm32c8t6,网上查到的解决方法都试过解决不了问题,球求各路大神帮忙看看

ErrorStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT)
{
  uint32_t lastevent = 0;
  uint32_t flag1 = 0, flag2 = 0;
  ErrorStatus status = ERROR;

  /* Check the parameters */
  assert_param(IS_I2C_ALL_PERIPH(I2Cx));
  assert_param(IS_I2C_EVENT(I2C_EVENT));

  /* Read the I2Cx status register */
  flag1 = I2Cx->SR1;
  flag2 = I2Cx->SR2;
  flag2 = flag2 << 16;

  /* Get the last event value from I2C status register */
  lastevent = (flag1 | flag2) & FLAG_Mask;

  /* Check whether the last event contains the I2C_EVENT */
  if ((lastevent & I2C_EVENT) == I2C_EVENT)
  {
    /* SUCCESS: last event is equal to I2C_EVENT */
    status = SUCCESS;
  }
  else
  {
    /* ERROR: last event is different from I2C_EVENT */
    status = ERROR;
  }
  /* Return status */
  return status;
}



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

28

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-9-20
在线时间
49 小时
 楼主| 发表于 2022-7-14 15:31:22 | 显示全部楼层
file:///C:/Users/fenzh/Desktop/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20220714152757.png
回复

使用道具 举报

11

主题

2141

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4847
金钱
4847
注册时间
2015-1-10
在线时间
607 小时
发表于 2022-7-15 13:20:38 | 显示全部楼层
加超时退出,别用while死等,硬件出错了软件不知道就卡死了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-26 18:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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