没时间仔细看你程序,给你些经验参考!
时序一定要符合i2c规范。SCL\SDA 平常在H(高态),送出地址或资料时,先送出资料,然后
再将SCL 从H ->L ->H (一个时钟)这样就送出1bit
传送速率,早绝不要超过2MHz ,也就是上面 H ->L ->H的时间要控制在2MHz内。
传送时高位元先送,所以是左移,收的时候也是左移陆察姿。
接收资料跟1.相同,在SCL由高到低转态时读取。
觉得新手比较容易弄错的是没完全弄懂时序(尤其是资料格式),另外就是速率。
仔细看看24c02的datasheet,对照自己没和的程序,这样对自己帮助最大,应该能找出问题。
网上down一个IIC模拟程序分析一下就棚纤是了,时序要求没那么精确的,大于多少ns就行了。稍作延时。上拉电阻一般知友就弄个10K。无论是对于哪种芯片IIC的时序是没多大差别的,弄个大概出来,在用示波搭和槐器看,再比较手册,看哪不对再改。这样是调IIC最好方法。还有,我不是记得STM32有硬IIC核吗,为何还需要用模拟IIC时序的方式去实现
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)