Stormer 发表于 2017-11-24 09:20:26

I2C的通信速率怎么调整?



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

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

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


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

Super169 发表于 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 上所以設備應該要一樣的吧.

页: [1]
查看完整版本: I2C的通信速率怎么调整?