请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR6889 您好!
我是 MSP430FR6889和 BMI160传感器。 BMI160具有24位定时器计数器(BMI 数据表 第53页)。
我正在尝试存储此数据、但不确定我是否 遵循了正确的程序。
我已经编写了一个 I2C 函数、该函数可以访问 I2C 从器件并从地址开始读取、然后读取到指定的字节数。
I2C_Master_ReadReg(SLAVE_ADDR, 0x18, 3); //(slave address, Start register address, how many bytes to read)
然后、我尝试将数据存储到变量中、但 MSP430正在向我展示以下内容:"64-D 移位计数太大"。
这是代码的那一部分:
uint32_t SENSORTIME; uint8_t time_0 = 0; uint16_t time_1 = 0; uint32_t time_2 = 0; time_0 = ReceiveBuffer[0]; time_1 = (uint16_t)(ReceiveBuffer[1] << 8); time_2 = (uint32_t)(ReceiveBuffer[2] << 16); SENSORTIME = (uint32_t)(time_2 | time_1 | time_0);
我想我知道我在这里做错了什么。 MSP430不是32位 MCU。 是否有关于如何执行此操作的建议?
谢谢你。