找回密码
 立即注册
查看: 499|回复: 7

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

[复制链接]

2

主题

4

回帖

20

积分

新手上路

积分
20
发表于 2024-4-25 14:59:36 | 显示全部楼层 |阅读模式
本帖最后由 木棉 于 2024-4-25 15:04 编辑

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

截图202404251454537189.jpg

Downloads.rar

646.97 KB, 下载次数: 42

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

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

毕竟只是个官方论坛 不是售后服务耐心等等dalao吧
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 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自发自收功能。

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

I2C主从收发测试-P14P15.zip

88.62 KB, 下载次数: 62

回复 支持 反对

使用道具 举报 送花

2

主题

4

回帖

20

积分

新手上路

积分
20
发表于 2024-4-25 15:48:16 | 显示全部楼层
乘风*** 发表于 2024-4-25 15:43
I2C从机中断模式与10口模拟12C主机进行自发自收,例子前面有介绍该例子的测试方法:
内部集成I2C串行总线控 ...

收发已经实现了,这个可以主机读从机数据吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-4-25 16:05:59 | 显示全部楼层
例子前面都有功能说明:
截图202404251604022941.jpg
回复 支持 反对

使用道具 举报 送花

2

主题

4

回帖

20

积分

新手上路

积分
20
发表于 2024-4-25 17:04:04 | 显示全部楼层
乘风*** 发表于 2024-4-25 16:05
例子前面都有功能说明:

我看程序,主从都是配置的P14、15,我没有修改引脚,按这个连接,然后只修改了uart波特率,打印的结果很奇怪。 截图202404251703588404.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 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。


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

回复 支持 反对

使用道具 举报 送花

2

主题

4

回帖

20

积分

新手上路

积分
20
发表于 2024-4-25 17:20:11 | 显示全部楼层
木*** 发表于 2024-4-25 17:04
我看程序,主从都是配置的P14、15,我没有修改引脚,按这个连接,然后只修改了uart波特率,打印的结果很 ...

知道了,这个打印格式化不好,而且没有注释,结合从机看一遍就明白了。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 11:15 , Processed in 0.156346 second(s), 97 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表