请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: CC3220SF
在 source/ti/drivers/i2c/I2CCC32XX.c 中定义了 I2CCC32XX_MAX_BURST、值为 255。
I2CCC32XX_primeReadBurst() 将突发计数限制为该值:
/* Determine the size of this burst */
if (object->readCount > I2CCC32XX_MAX_BURST)
{
object->burstCount = I2CCC32XX_MAX_BURST;
}
else
{
object->burstCount = object->readCount;
}
突发计数的值稍后通过断言进行验证、条件不匹配:
void
I2CMasterBurstLengthSet(uint32_t ui32Base, uint8_t ui8Length)
{
//
// Check the arguments.
//
ASSERT(_I2CBaseValid(ui32Base) && (ui8Length < 255));
//
// Set the burst length.
//
HWREG(ui32Base + I2C_O_MBLEN) = ui8Length;
}
当尝试读取大于 254 个字节时、将触发断言。 是否应将 I2CCC32XX_MAX_BURST 设置为 254 或删除置位条件(因为数据类型已将值限制为 0-255 范围)?
SDK 版本 7.10.00.13。
