This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件: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 (); }
您为什么会考虑10K 上拉 Rs A (潜在)问题? (它们比更高的值 MCU 内部 Rs 有效得多。)
您已经介绍了独特的"仅限于函数调用"(所有"代码详细信息"均为"隐藏"、这证明(超出)大多数人(或可能的任何地方)审查和指导/评论的能力。
您必须意识到、您的"实际"代码是必需的"(仅调用函数-证明输出(大量)值)-("大量"-是种类...)
例如、您会调用"Wire.setModule(2);" 、在这里、任何人都如何"知道"该函数的工作原理? 以及"代码实现的正确性? 除了"Serial.print()"-我们可以"猜中的"Serial.print()"-我/他人-没有线索!
在这里寻求帮助时、您的工作是否不是提供此类(必需)详细信息?
您好、Charles、
我们的海报没有提到"Energia"- 海报的主题栏、帖子的正文和标签中完全没有提到这一点。
我记得您曾被"保留了有关"Energia 的使用"(由于其限制)-但您(不知为何)(现在)已经将海报的函数调用识别为"基于 Energia "。
因为"Energia"有自己的专用论坛、而海报中没有提到"Energia 的独家使用"、"非 Energia 用户"如何"知道"Energia"是"在使用中"?
您是否可以建议此类海报-在展示(预期的)"正常/习惯"TM4C 风格和用法的问题和代码时-他们应该(部分)提及其"特殊用途?" 如果我对 Energia 有一点"暗示"-我不会浪费时间/精力...