我不会吗?可能没时间自己完全编写库文件,但是事实就是如此
没有采用stm32的i2c,有两个可能性,所以最好不要用stm32的i2c读取24c之类的芯片.第一个就是24c系列在读取过程中,例如SDA输出0时,stm32由于多种原因中断退出,致使SDA始终为0而且24c不会释放SDA,这样stm32复位再启动BUSY一直有效,接下来stm32的i2c就不会工作了.第二个就是stm32的i2c例程和库都只是示例,不能实用.例如示例是去比较EV5,EV8之类的信号,我看了stm32的库文件就是简单的把SR1,SR2读出然后和定义的EV条件比较,只要不等就死.而SR1,SR2表示的状态很全面,例如在EV5时BTF标志有效,那就要死机.所以有以上两种问题我就干脆放弃了,软件构成读写24c很可靠,毕竟是做产品还是可靠为第一. 6楼你能保证SDA没可能为0吗?
|
|