大家好,
我正在通过 i2c 接口使用 MMA9555L 模块,但在使用 MMA9555L 的计步器功能时遇到了问题。为了进行正确性检查,我读取了版本信息,结果正常,并返回了所需的数据,但当我想读取计步器应用程序的数据时,从属设备却返回了无意义的数据。下面是我的代码:
void main()
{
void pedometerConfigRegs(); //设置计步器应用程序的配置寄存器
//将这些字节发送到该部分:0x15、0x20、0x00、0x11、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00
void pedometerReadValue(); // 读回从属设备的数据
//将这些字节发送到该部分:0x15、0x30、0x00、0x0C
while(1)
{
read_i2c(16);
}
}
如蒙帮助,不胜感激。
此致,
米拉德
你好,米拉德、
要更新信息,COCO 标志应为 1、
因此,写入和读取之间的固定延迟将确保数据的正确性、
延迟必须为> 33ms。
另外,在设置计步器功能之前,您是否将设备退出睡眠模式,即 RESET?
为此,您需要清除 CFG 寄存器的第 0 位。
至于错误代码,可能是您发送的命令不正确、
您能分享一下您所做的修改吗?
谢谢!
此致,
奥尔多
经过一些修改,现在从属设备返回错误 0x9C,而不是 0x80,这表明"命令解释器无法识别命令代码。"
如何解决这个问题?