调试问题

在调用i2c的API write时,耗时特别久,仅这一步就要一分钟,这个要怎么解决

查看返回值err时,发现err没有值,都不知道哪里出错

  • 而且 这步过后执行的 status = tx_semaphore_get(&g_i2c_semaphore, TX_WAIT_FOREVER); 会卡住
    想yihua解答一下
  • 而且 这步过后执行的 status = tx_semaphore_get(&g_i2c_semaphore, TX_WAIT_FOREVER); 会卡住
    想yihua解答一下
  • In reply to f0resTnT:

    这个情况是正常的,调用这个系统函数就会挂起线程,只有得到想要的semaphore时才会释放,时间长可能有两个原因
    1. 硬件问题,是否IIC总线一值是低的状态,也就是说总线忙,系统一直在等待获得总线控制权。
    2。软件问题,检查一下系统中线程的优先级,是否这个线程优先级太低,所以无法及时运行。