我正在STM32上阅读BMP180压力传感器,它很有效,但是,看着分析仪上的传输,我总能看到一个额外的空字节读取。
我几乎可以肯定,这是因为我只在I I2C_ReceiveData()之后才给出I2C_GenerateSTOP() - 这是合乎逻辑的,但不像所有的例子那样。在那里,即使在等待最后一个字节的I2C_EVENT_MASTER_BYTE_RECEIVED之前,也要调用I2C_GenerateSTOP()。
现在,如果我按照示例去做,读数不稳定:它工作几次,然后不再工作:在I2C_GenerateSTART()超时后等待I2C_EVENT_MASTER_MODE_SELECT。
我试图搜索各种示例,但无法找到解决此问题的任何线索。
有人可以帮忙吗?
答案 0 :(得分:1)
我认为他们的一些芯片的勘误表描述了这种行为
<强>描述强>
当EV7,EV7_1,EV6_1,EV6_3,EV2,EV8和EV3时 在传输当前字节之前不管理事件, 可能会遇到一些问题,比如接收一个额外的字节,读取 相同的数据两次或缺少数据。
还有解决方法 http://www.st.com/st-web-ui/static/active/en/resource/technical/document/errata_sheet/CD00190234.pdf