TI中文支持网
TI专业的中文技术问题搜集分享网站

多线程状态I2C处于400k模式长时间运行时无法通信

1)I2C设置为硬件400k模式。

2)开启多线程。

3)以100Hz频率读取从设备,每次读写数据20字节左右。

4)读写驱动为官方提供驱动。

错误一、运行一段时间后器件无法正常运行。停止仿真发现一直停留在

I2CTransact函数的

while((MAP_I2CMasterIntStatusEx(I2C_BASE, false)

& (I2C_INT_MASTER | I2C_MRIS_CLKTOUT)) == 0)

{

}

错误二、正常退出,显示读写失败并一直失败。

Viki Shi:

论坛有类似的问题【https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/p/554947/2029436】,你看一下是不是代码里有这句 /* Check for any errors in transfer */ if(MAP_I2CMasterErr(I2C_BASE) != I2C_MASTER_ERR_NONE)

Eric Wang7:

回复 Viki Shi:

有,在运行代码下面,还没运行到这里就已经停止了。这一句是获取出错状态并处理,论坛里说的那个应该是主、从设备通信速度不一致引起的,此问题从设置设置为400K与主设备一致。

赞(0)
未经允许不得转载:TI中文支持网 » 多线程状态I2C处于400k模式长时间运行时无法通信
分享到: 更多 (0)