主题中讨论的其他器件:TM4C123、 ENERGIA
工具/软件:Code Composer Studio
您好!
我正在尝试使用 TM4C123G 仿真2个 i2c 从器件。 基本上、我需要能够在两个地址中接收 i2c 作为从器件。
因此、从我作为 i2c 主器件的 rasberry PI、我连接到 SCL2/SCL3和 sda2/sda3、并连接10K 上拉电阻器。
以下代码部分工作。 i2cdetect 将检测0x40和0x42上的两个器件、但您只能写入0x42 -如果您写入0x40、则会崩溃。 如果代码被注释掉以一次启用一个 i2c 总线、它将适用于任何一个 i2c 总线。 我使用了10K 电阻器、这可能是问题所在。
但是、如果 tm4c 有双地址方案、那将会很好、所以我不会再花这些额外的引脚。
任何想法/帮助/推荐都非常感谢。
此致、
C.A.
#include
void setup(){
Wire.setModule(2);
Wire.onReceive(receiveEvent2);
Wire.begin(0x40);
Wire.setModule(3);
Wire.onReceive(receiveEvent3);
Wire.begin(0x42);
Serial.begin(230400);
Serial.println("init");
}
void loop(){
}
void receiveEvent2(int n){
Wire.setModule(2);
Serial.print("2:\t");
while (0 < Wire.available ()){
int c = Wire.read();
serial.print(c);
serial.print ('\t');
}
serial.println ();
}
void receiveEvent3 (int n){
Wire.setModule(3);
serial.print ("3:\t");
while (0 < Wire.available ()){
int c = Wire.read();
serial.print(c);
serial.print ('\t');
}
serial.println ();
}