在使用 lpi2c 时,我遇到了程序卡在调试模式的情况。但是,当我断开 PE 连接并重新启动程序后,它就能正常工作了。程序在运行时卡在了调试模式。
做
{
/* 主发送数据 */
Lpi2c_Ip_MasterSend(实例);
ElapsedTicks += OsIf_GetElapsed(&CurrentTicks, I2C_TIMEOUT_TYPE);
while ((Lpi2c_Ip_MasterGetTransferStatus(Instance, NULL_PTR) == LPI2C_IP_BUSY_STATUS) && (ElapsedTicks < TimeoutTicks));
有什么办法解决这个问题吗?
请问是否已选中“I2C调试启用”选项?
当 MCR[DBGEN] = 1 时,在调试 MCU 时,LPI2C 模块将继续工作。
当 MCR[DBGEN] = 0 时,在对应用程序进行编程并正常运行电路板(不连接调试器)后,LPI2C 应该能够按预期工作。
BR,VaneB
下图供您参考:
VaneB_0-1786396779346.png
感谢您的回复。我使用 .mex 文件配置 i2c,如何设置才能控制 MCR[DBGEN] =1?
此选项已添加到最新RTD版本中,现在可以直接通过外设工具进行配置。
由于您使用的是较早的 RTD 版本,建议在应用程序代码中配置 MCR[DBGEN]。
zhangyu5454_0-1786418199524.png
我注意到我们的页面显示方式不同,我找不到这个选项,请注意我的版本是 RTD5.0。