您好!
在我们基于 CC2640R2F 的产品中、我们有一个"测试模式"。 在"测试模式"下、我们测试 LED、蜂鸣器和 I2C 加速计等外设。 进入"测试模式"后、我们通过 UART 输入命令示例"acce"来测试我们的加速计。 在“测试模式”下,只有 TestApp__Accelerometer()失败。 如果我在 TI-RTOS 主任务中调用此 TestApp__Accelerometer (),而不是在“测试模式”中,它将一直起作用。
下面是我在进入测试模式后的观察结果。
1.如果我在 测试模式初始化时调用 TestApp__Accelerometer (),它将通过。
/*配置 UART */
UartApp__Init();
UartApp_WriteString ("测试已开始\r\n);
TestApp__Accelerometer();
注意:将此 UART 设置为重复读取回调以接受命令后、请参阅"ace"示例。
2.重复的 UART 读取回调初始化后, 它会使 TestApp__Accelerometer()失败,特别是读取加速计的器件标识寄存器。
STATUS_t LIS3DH_GetWho_AM_I (uint8_t* val) { if (!LIS3DH_ReadReg (LIS3DH_WH_AM_I_ADDR、val)) { 返回 MEMS_ERROR; } 其他 { 返回 MEMS_SUCCESS; } }
我调试 TestApp__Accelerometer,特别是 I2C 部件,它能够 sensor_select()并返回 I2C 句柄。
我的结论是 UART 重复读回调会影响 I2C。 这不应该由 TI-RTOS 驱动程序处理? 此问题的正确解决方案是什么?
-克尔