找回密码
 立即注册
查看: 686|回复: 3

关于I2C主从机速度和传输问题请教

[复制链接]

该用户从未签到

1

主题

1

回帖

11

积分

新手上路

积分
11
发表于 2022-11-21 14:25:08 | 显示全部楼层 |阅读模式
单片机初学者一枚,最近申请了STC芯片,关于I2C有问题请教:
1、看资料I2C从机不能设置I2C速度,是不是根据主机的I2C时钟速度来的?

2、在从机代码里,怎样知道主机来读数据了呢,主机读的命令,从机在哪里知道的?主机和从机串口都是通的,有打印信息输出
回复 送花

使用道具 举报

  • TA的每日心情
    慵懒
    前天 08:37
  • 签到天数: 95 天

    [LV.6]常住居民II

    14

    主题

    616

    回帖

    2337

    积分

    超级版主

    积分
    2337
    QQ
    发表于 2022-11-21 14:32:57 | 显示全部楼层
    1、从机是不能设置速度,是自适应主机速度的。

    2、接收完再打印,不要在中断里面打印信息,避免影响实时接收,可以通过IO口翻转判断是否执行了中断流程。我们官方提供的例程上(可在STC-ISP下载软件V6.90U或者数据手册等上找到例程),除了I2C通道跟串口外,其它都先不要改,避免改错或者部分内容没移植完整导致功能失效。
    www.STCAI.com
    微信&手机:18106296591
    QQ:3133693787
  • TA的每日心情
    开心
    2024-5-11 09:06
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    16

    主题

    724

    回帖

    2578

    积分

    超级版主

    积分
    2578
    发表于 2022-11-22 13:13:37 | 显示全部楼层
    在楼上的基础上补充一小点点:
    作为从机是不可能知道主机什么时候要读数据,所以需要先准备好数据,随时准备主句来读取
    具体操作:从机在匹配到从机设备地址,并检测到设备地址的最后一个R/W位为1
    则表示接下来主机要读取数据了,这时从机需要先将数据预先准备到I2CTXD寄存器中
    当主机的SCL时钟再次到达从机时,硬件便会自动将I2CTXD寄存器中的数据发送给主机了

    该用户从未签到

    1

    主题

    1

    回帖

    11

    积分

    新手上路

    积分
    11
     楼主| 发表于 2022-11-23 15:45:42 | 显示全部楼层
    感谢楼上大佬解答,涨知识啦!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-5-19 00:32 , Processed in 0.056204 second(s), 41 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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