工具/软件:TI-RTOS
大家好、这是我第一次尝试固件、所以请耐心等待。
在文件 SensorTagApp bsp_i2c.c 中、i2cParams 似乎有两种不同的初始化。 首先、在 bspI2cInit 中、我们有 i2cParams.bitrate = I2C_400kHz。 其次、在 bspI2cSelect 中、我们将 i2cParams.bitrate 设置为默认 I2C_100kHz。 为什么有两种不同的比特率、这两种不同的比特率用于什么? 就我所说的、唯一重要的是第二个、因为所有读取实际数据的调用都使用 sensor_select。 以不同的方式设置比特率的目的是什么?
2.如何设置从 mpu9250 FIFO 的非阻塞式读操作? 以下对 bspI2cSelect 的修改是否有效? 我认为 JXS 在 TOSA 上的帖子 可能建议使用信标进行更好的回调、但我不够详细地理解这一建议。
提前感谢!
Allan
volatile bool lastI2cResult = false;
void myI2C_Callback (I2C_Handle foo、I2CTransaction* bar、bool status)
{
lastI2cResult = status;
}
bool getI2cResult()
{
bool ret = lastI2cResult;
lastI2cResult = false;
返回 lastI2cResult;
}
bool bspI2cSelectNonBlocking (uint8_t newInterface、uint8_t address)
{
------------------ 未粘贴的代码-------------------------------------------------------
if (newInterface!= interface)
{
------------------ 未粘贴的代码-------------------------------------------------------
//将定制设置为 NULL,选择 I2C 接口0 I2C_Params_init (&i2cParams); //修改比特率和非阻塞 i2cParams.bitrate = I2C_400kHz; i2cParams.transferMode = I2C_MODE_CALLACK; i2cParams.transferCallbackFxn = myI2C_Callback;
------------------ 未粘贴的代码-------------------------------------------------------
} 返回 i2cHandle != NULL; }