STM32 I2C读取额外的“空”字节

时间:2015-05-03 19:01:48

标签: stm32 i2c

我正在STM32上阅读BMP180压力传感器,它很有效,但是,看着分析仪上的传输,我总能看到一个额外的空字节读取。

我几乎可以肯定,这是因为我只在I I2C_ReceiveData()之后才给出I2C_GenerateSTOP() - 这是合乎逻辑的,但不像所有的例子那样。在那里,即使在等待最后一个字节的I2C_EVENT_MASTER_BYTE_RECEIVED之前,也要调用I2C_GenerateSTOP()。

现在,如果我按照示例去做,读数不稳定:它工作几次,然后不再工作:在I2C_GenerateSTART()超时后等待I2C_EVENT_MASTER_MODE_SELECT。

我试图搜索各种示例,但无法找到解决此问题的任何线索。

有人可以帮忙吗?

1 个答案:

答案 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