发表于 2014-7-11 10:21:37

RE:STM8 I2C硬件连续运行情况下接收数据时发送地址后接收不到应答信号。

示波器显示的频率是8Mhz,根据寄存器的值算,可能是超范围了。现在单步可以读取,程序是对的,如果用中断的方式是不是也会出这样的问题呢?

风-417456 发表于 2014-7-11 10:23:14

回复:STM8 I2C硬件连续运行情况下接收数据时发送地址后接收不到应答信号。

回复第 11 楼 于2014-07-11 10:21:37发表:
示波器显示的频率是8Mhz,根据寄存器的值算,可能是超范围了。现在单步可以读取,程序是对的,如果用中断的方式是不是也会出这样的问题呢?
 
 
 
我用的查询法,还没有用中断试过。
 

发表于 2014-7-11 16:11:57

RE:STM8 I2C硬件连续运行情况下接收数据时发送地址后接收不到应答信号。

我没用过STM8,其他的I2C都是类似的。但我不知道你读取SR3干什么用的,手册上写的是要清除ADDR时读取SR3。

有缘于你 发表于 2014-7-12 08:38:51

RE:STM8 I2C硬件连续运行情况下接收数据时发送地址后接收不到应答信号。

前一个stop发出去了么, 还有读之前是在写入么,写入需要等一段时间24C256才会有应答的, 程序应该改改, 不能这样写,很容易死机的,应该用超时判断, 错误恢复等容错能力

风-417456 发表于 2014-7-12 12:26:09

回复:STM8 I2C硬件连续运行情况下接收数据时发送地址后接收不到应答信号。

回复第 13 楼 于2014-07-11 16:11:57发表:
我没用过STM8,其他的I2C都是类似的。但我不知道你读取SR3干什么用的,手册上写的是要清除ADDR时读取SR3。
搞定了,I2C写数据和读数据的操作之间没有延时,延时10ms以上就能读写了,20ms以上的话时序比较稳定。
 

巅峰残狼 发表于 2014-7-12 14:30:30

RE:STM8 I2C硬件连续运行情况下接收数据时发送地址后接收不到应答信号。

学习了:L

风-417456 发表于 2014-7-12 21:11:10

回复:STM8 I2C硬件连续运行情况下接收数据时发送地址后接收不到应答信号。

回复第 14 楼 于2014-07-12 08:38:51发表:
前一个stop发出去了么, 还有读之前是在写入么,写入需要等一段时间24C256才会有应答的, 程序应该改改, 不能这样写,很容易死机的,应该用超时判断, 错误恢复等容错能力
 
前一个STOP在示波器上发出去了,程序里面有加应答等待的。超时什么的死机问题应该有的,我目前只是先调出能读写,单单这块已经花我好几天时间了。之前网上看到都说STM8 的I2C硬件有点问题,这几天调试的时候也确实感觉有点不太对劲,数据信号的波形不是很好,不知道是不是因为用了内部晶振做时钟的缘故。
 

aaa999kk 发表于 2014-7-17 16:54:34

RE:STM8 I2C硬件连续运行情况下接收数据时发送地址后接收不到应答信号。

两个动作之间的间隔要注意冲突
页: 1 [2]
查看完整版本: STM8 I2C硬件连续运行情况下接收数据时发送地址后接收不到应答信号。