移植正点原子对IC2,驱动程序读数据正确(使用写好的AT24C512测试,说明器件地址没有问题),但无法写入数据,驱动函数中,数据写入的用到的函数,数据读取都用的到,示波器检查IO配置正确(不正确的话,数据读取也不会出错),延时时间正确(排除时钟配置问题);
问题陆陆续续扣了两天才找到原因,
iic时序问题,iic停止函数中停止建立时间太短,官方数据手册最小时间为0.25us,原子哥的程序停止信号需要改善,增加延时就ok.
本文记录了一次IIC总线数据写入失败的问题排查过程。通过详细分析,发现原因是停止信号建立时间过短导致的时序问题,并提出了增加延时作为解决方案。
移植正点原子对IC2,驱动程序读数据正确(使用写好的AT24C512测试,说明器件地址没有问题),但无法写入数据,驱动函数中,数据写入的用到的函数,数据读取都用的到,示波器检查IO配置正确(不正确的话,数据读取也不会出错),延时时间正确(排除时钟配置问题);
问题陆陆续续扣了两天才找到原因,
iic时序问题,iic停止函数中停止建立时间太短,官方数据手册最小时间为0.25us,原子哥的程序停止信号需要改善,增加延时就ok.
您可能感兴趣的与本文相关内容