挂4个i2c器件,1个24cxx,3个是同一个公司的器件,差别只在地址不同.
只有两个通信正常.
我用avr不管用硬的还是软的都可以.
准备用软的了.
我用的24C64偶尔也有问题
while等待死在那了,难道真的是STM32的硬件问题?
无论
哪款单片机,IIC能死等在那儿?IIC就没出错的时候?
楼主用了哪四个I2C器件?
请告诉我型号,如果能各寄2个样片给我,包括该器件的手册,我这里帮你调通,如果有费用方面的顾虑,我可以用STM32的芯片给你补偿。
请通过mcu.china@st.com与我联系。
我承认I2C的例子写的很不好,造成不少人的麻烦,但每次当我们直接调试用户的程序后,I2C都能够正常工作,说明I2C的硬件没有问题,问题往往出在各人对I2C协议的理解不同。
鉴于此,如果有人在做产品时遇到问题,又愿意寄样片给我,我这里可以帮你调好。
碰到I2C问题的人太多了
ST应该多做些例程或者说明什么的以飨广大STM32的消费者
谢谢香版主,现在用模拟的已经通了...
我觉得不是程序的问题,因为挂了同一个厂家的3个器件.
一个为A,两个为B
上拉电阻为4.7K到5v
通过外部管脚设为不同的地址.
现在A是可以通信的,B不可以.
A和B通信格式是一样的:START+地址+ACK+寄存器地址+ACK+数据+ACK+STOP
所以我确认I2C兼容性不好,要不然为什么A可以通信,B不可以呢?
而AVR的硬I2C可以,目前没试其它的硬i2c.
不排除布板人员把线布的太长了.
型号为NJW1110和NJW1184,可以在21IC search上找到的.
我也到现在还没调通I2C
我感觉那种用WHILE等待的方式,如果芯片出了问题或不对,必死无疑,应该加个超时吧?
请在I2C方面遇到困难的朋友把你的样片寄给我,我帮你解决