stm8 硬件i2c从机接收程序

stm8 硬件i2c从机接收程序,第1张

首先,iic做从机的程序源码网上比较多,我就不发了,说下调试方法。

相信主机部分已经调试通过了,在这个前提下,楼主的思路是没错的,接收非空,读数据。iic属于一个硬件接口,出问题的时候需要借助示波器,监测每个时候每个数据的波形,同时用JTAG在线调试,分析从机相关寄存器的状态,与自己计算的理论值做对比看是否正确,最终会找到一个出错的地方,看着一堆数据确实会枯燥一些,楼主加油,祝成功~

首先,iic做从机的程序源码网上比较多,我就不发了,说下调试方法。

相信主机部分已经调试通过了,在这个前提下,楼主的思路是没错的,接收非空,读数据。iic属于一个硬件接口,出问题的时候需要借助示波器,监测每个时候每个数据的波形,同时用JTAG在线调试,分析从机相关寄存器的状态,与自己计算的理论值做对比看是否正确,最终会找到一个出错的地方,看着一堆数据确实会枯燥一些,楼主加油,祝成功~

stm8的I2C的确有BUG 可以参考官方的Errata Sheet 上面明确写着Stm8的I2C有使用限制

地址:http://www.st.com/web/en/resource/technical/document/errata_sheet/CD00237242.pdf

第13页

while(I2C_GetFlagStatus(I2C_FLAG_BUSBUSY))锁死是因为总线忙,可能是干扰,可能 *** 作错误,可能读取外部器件I2C数据一半而复位,导致外部器件将SDA一直拉低。具体方法手册里有。但总线锁死跟I2C的BUG似乎没太大联系,我觉的。可能是由于I2C设计的太复杂使编程者疏忽了某些细节而导致的锁死。BUG主要是关于数据没及时读写而导致读写的数据错误。

具体你可以按照手册上的说明来做。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7811717.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存