czczcz 发表于 2022-12-21 22:57:42

STC8 I2C从机,示例代码跑起有点bug,提一点修改建议

本帖最后由 czczcz 于 2022-12-21 22:59 编辑

使用STC8作为从机。
发现树莓派读完后,被读的寄存器就莫名其妙被修改了。
最终debug发现是示例代码把第二个START后的设备地址识别为了数据。
因此需要在处理START事件时,加上isda = 1;(或者isda = 1;isma = 1;)
希望官方在下一版中修改示例代码,详细如下图所示:





czczcz 发表于 2022-12-21 23:01:03

GG,发错版块了:L:L:L

zhp 发表于 2022-12-23 09:44:58

本帖最后由 zhp 于 2022-12-23 10:14 编辑

从机检测到START事件后,将isda设置为1确实能提高从机代码的兼容性
已安排后续更新I2C的从机范例代码。感谢热心网友的建议!

梁工 发表于 2022-12-23 10:40:24

我是在收到START信号后将接收到地址标记为0(即未收到地址),这样处理就是要求:START信号后跟的是地址。

1014708854 发表于 2024-12-14 12:23:10

<p><img src="data/attachment/forum/202412/14/122127pzulj7ui7fw04fiu.png" alt="image.png" title="image.png" /></p>
<p>stc8h1k08T的iic从机,读取2个字节,第二个字节会出现错误</p>
页: [1]
查看完整版本: STC8 I2C从机,示例代码跑起有点bug,提一点修改建议