极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14547|回复: 1

I2C的通信速率怎么调整?

[复制链接]
发表于 2017-11-24 09:20:26 | 显示全部楼层 |阅读模式


我现在用的LEONARDO和UNO,它们之间通过SCL SDA连接。 LEONARDO给UNOWire.wirte()数据过去操作UNO连接的一个IC的寄存器。

UNO直接操作外部IC的寄存器的时候,工作正常。

LEONARDO -- -> I2C ---> UNO ---> 外部IC寄存器,如果是这样来做,外部IC的操作速度会有非常小的卡顿,达不到操作的速度要求。


所以我想有没有可以提高I2C的通信速率的方法? ARDUINO里I2C默认的通信速率是多少?
回复

使用道具 举报

发表于 2017-11-24 09:46:05 | 显示全部楼层
在 Wire 庫的 twi.h 中 (<IDE>\hardware\arduino\avr\libraries\Wire\src\utility), 有以下的設定:

  #ifndef TWI_FREQ
  #define TWI_FREQ 100000L
  #endif


100000L 應該是 100KHz 吧.

我自己沒試過修改, 不知是否有效.
修改原裝庫的設定, 可能會對其他 i2c 設備都有影響, 要小心點, bus 上所以設備應該要一樣的吧.

回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 11:34 , Processed in 0.041547 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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