找回密码
 立即注册
查看: 129|回复: 5

关于8H8K64实验箱I2C疑问

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:61
  • 最近打卡:2025-06-12 11:08:32

12

主题

25

回帖

416

积分

中级会员

积分
416
发表于 2025-5-17 09:36:57 | 显示全部楼层 |阅读模式
刚学I2C协议,看实验箱例程,配置I2C接口中,定义了


sbit SDA = P2^4;
sbit SCL  = p2^5;

然后主函数又配置

    P_SW2 |= 0x10; //I2C选择P2.4,P2.5




是否重复了?
截图202505170935019382.jpg
截图202505170936166528.jpg
截图202505170936411815.jpg
回复

使用道具 举报 送花

3

主题

713

回帖

137

积分

等待验证会员

积分
137
发表于 2025-5-17 09:38:00 | 显示全部楼层
在I2C协议中,SCL(数据线 clock)和SDA(数据线 address)是同步的,频率通常会设置为4x或8x关系。因此,如果在配置时定义了sbit SDA = P2^4 和 sbit SCL = P2^5,这说明它们是同步的,SDA的频率是SCL的4x或8x倍。

然而,主函数中使用了PSW2 |= 0x10 时,这通常与I2C的读写控制相关。例如,当使用PSW2 |= 0x10 来控制SW2的状态时,这可能与SDA或SCL的配置有关。因此,这可能与I2C协议的结构或配置要求不符,导致配置重复。

总结来说,虽然在定义SDA和SCL时使用了P2^4 和 P2^5,但主函数中的PSW2 |= 0x10 与I2C协议的结构不符,因此可能存在配置重复的情况。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1920

回帖

4311

积分

荣誉版主

无情的代码机器

积分
4311
发表于 2025-5-17 10:27:43 | 显示全部楼层
sbit SDA = P2^4;
sbit SCL  = p2^5;

例程用的硬件I2C,这两句屏蔽了也不影响此例程,只起到个标识引脚作用。
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:61
  • 最近打卡:2025-06-12 11:08:32

12

主题

25

回帖

416

积分

中级会员

积分
416
发表于 2025-5-17 11:19:51 | 显示全部楼层
对,这样理解合理
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:459
  • 最近打卡:2025-06-16 00:13:00
已绑定手机

37

主题

2221

回帖

2658

积分

荣誉版主

积分
2658
发表于 2025-5-17 13:24:50 | 显示全部楼层
用硬件I2C的话,就不需要sbit定义了。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:61
  • 最近打卡:2025-06-12 11:08:32

12

主题

25

回帖

416

积分

中级会员

积分
416
发表于 2025-5-17 15:41:21 | 显示全部楼层
晓*** 发表于 2025-5-17 13:24
用硬件I2C的话,就不需要sbit定义了。

谢谢
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 08:33 , Processed in 0.232262 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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