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.
它将进入 void i2cSendByte (i2cBASE-t * i2c、uint8字节) 而((i2c->STR &(UINT32) I2C_TX_INT)== 0U) { }/*等待*/即使选择了中断也是如此。
PINMUX i2c 也被选中和取消选中。
外部10K 上拉电阻器已连接。
已尝试100kHz 和400kHz i2c 波特率仍然不起作用。
如果有人有工作代码、请分享。
您好 Murali、
[引用 user="Murali Prasad"]1)我尝试使用示波器时,没有在 SDA 和 SCL 线路上获得信号。
2)我尝试了环回,它正在工作。[/引述]
您使用了哪种回送类型? 数字还是模拟? 在这两种情况下、回送中的代码函数都指向硬件问题。 即、除 MCU 之外、其他器件正在驱动信号。 如果 Hercules 是主器件、它应该至少控制 SCL、所以这个信号应该计时。 如果这些信号始终被驱动为低电平、则会有某种情况以这种方式驱动它们(尝试断开外部器件并查看 SCL 发生了什么情况)。
其他要点对您所看到的问题具有不同级别的标志。
[引用用户="Murali Prasad"]3)我尝试使用较低和较高的波特率。[/引用]
外部器件应定义要使用的波特率。 但是、由于您根本没有获得任何 SCL 输出、波特率选择与您目前的问题无关。
[引用 USER="Murali Prasad]4) I2C 网络上只有一个器件。
5) 5)我们在 Hercules MCU 上运行是主 器件、而 TMP112传感器是从器件。[/quot]
您需要了解从器件 TMP112对信号线路的影响。 它是否会持续将其驱动为低电平? TMP112的接线是否存在问题? 它的拉动要求是什么?
Murali Prasad 说:6)检查 PINMUX I2C 外设并尝试未检查的模式。 10k 上拉电阻器连接到 SDA 和 SCL 线路。[/QUERP]
如果您使用的是 I2C 外设、则需要确保引脚具有适当的功能并且没有冲突。 检查配置页顶部列表中的 I2C 外设是主要步骤、但您应该确认也检查了 I2C SCL 和 SDA 线路。 此外、如果您使用的是 Launchpad、请仔细检查您正在使用的特定引脚(如引脚多路复用表中所述)是否与您在 Launchpad 上连接了温度传感器的位置相同。
Murali Prasad 说:7)使用 i2c 中断和轮询方法时、仍会尝试在代码的以下部分挂起。
由于您已声明软件在回送模式下工作、因此如果您的基本 I2C 代码中存在特定问题、并且您在 SDA 或 SCL 线路上看不到任何输出、我将对此表示怀疑、 还让我相信这是引脚多路复用配置问题或硬件连接问题。