木棉 发表于 2024-4-25 14:59:36

STC8A作为IIC从机,如何读出数据?

本帖最后由 木棉 于 2024-4-25 15:04 编辑

主机和从机都使用例程《16-12C从机中断模式与10口模拟12C主机进行自发自收》,库均无修改,主机main代码如图,发送时,从机可以接收到,但是读取打印全是0,从机地址配置为不识别,main代码是打印IIC接收到的数据,别的没有修改。请问如何解决?



_奶咖君_ 发表于 2024-4-25 15:36:28

木棉 发表于 2024-4-25 15:20
额,20分钟过去了,还没有回复,这种回复速度,不得一年才能解决一个问题?STC这是要完全走给学生玩玩的路 ...

毕竟只是个官方论坛 不是售后服务{:4_187:}耐心等等dalao吧{:4_200:}

乘风飞扬 发表于 2024-4-25 15:43:20

I2C从机中断模式与10口模拟12C主机进行自发自收,例子前面有介绍该例子的测试方法:
内部集成I2C串行总线控制器做从机模式,SCL->P2.5, SDA->P2.4;
IO口模拟I2C做主机模式,SCL->P0.0, SDA->P0.1;
通过外部飞线连接 P0.0->P2.5, P0.1->P2.4,实现I2C自发自收功能。

使用两个芯片进行通信的话可以参考附件例子,一个芯片烧录主机程序,一个芯片烧录从机程序。
如果使用不同脚位进行通信的话,修改脚位切换代码就可以,其它先不要修改,功能测试正常后再根据需要进行修改或者移植。

木棉 发表于 2024-4-25 15:48:16

乘风飞扬 发表于 2024-4-25 15:43
I2C从机中断模式与10口模拟12C主机进行自发自收,例子前面有介绍该例子的测试方法:
内部集成I2C串行总线控 ...

收发已经实现了,这个可以主机读从机数据吗?

乘风飞扬 发表于 2024-4-25 16:05:59

例子前面都有功能说明:

木棉 发表于 2024-4-25 17:04:04

乘风飞扬 发表于 2024-4-25 16:05
例子前面都有功能说明:

我看程序,主从都是配置的P14、15,我没有修改引脚,按这个连接,然后只修改了uart波特率,打印的结果很奇怪。

乘风飞扬 发表于 2024-4-25 17:19:17

本帖最后由 乘风飞扬 于 2024-4-25 17:22 编辑

木棉 发表于 2024-4-25 17:04
我看程序,主从都是配置的P14、15,我没有修改引脚,按这个连接,然后只修改了uart波特率,打印的结果很 ...你打印的内容是对的。
发送的是累加计数值,像 283、284、285......
读取的数据是已发送的数据与7取与的值做地址(应该是低3位,不是低7位)。
例如发送283,读取地址为3,从机就返回0x31 32 33 34。
发送284,读取地址为4,从机就返回0x41 42 43 44。


从机根据主机发送的存储器地址内容返回对应的数据,可以根据需要进行修改。

木棉 发表于 2024-4-25 17:20:11

木棉 发表于 2024-4-25 17:04
我看程序,主从都是配置的P14、15,我没有修改引脚,按这个连接,然后只修改了uart波特率,打印的结果很 ...

知道了,这个打印格式化不好,而且没有注释,结合从机看一遍就明白了。
页: [1]
查看完整版本: STC8A作为IIC从机,如何读出数据?