Other Parts Discussed in Thread: MSPM0L1306, SYSCONFIG, TMS320F280049C
器件型号: MSPM0L1306
主题中讨论的其他器件: SysConfig、 TMS320F280049C
标题: MSPM0L1306 在使用 I2C 目标模式时进入 Default_Handler
您好、
我将 MSPM0L1306 与 CCS + SysConfig 配合使用。
我面临一个问题、即 MCU 跳转到 Default_Handler() 无限环路并因意外中断而卡在无限环路中。
void Default_Handler(void)
{
while (1) {
}
}
问题
在添加 I2C 功能之前、程序正常工作。 启用 I2C 相关代码后、它会进入 Default_Handler。
我还注意到,有时附近的断点 main() 未被正确命中,并最终执行达到 Default_Handler.
我想确定哪个中断导致了这种情况。
当前使用的项目中断
我已在工程中使用这些中断:
-
计时器中断:
TIMG1_IRQHandler -
计时器中断:
TIMG0_IRQHandler -
GPIO 中断:
GROUP1_IRQHandler
我还使用以下命令启用 GPIO 中断:
NVIC_EnableIRQ(GPIOA_INT_IRQn);
I2C 配置(从模式/目标模式)
我正在 I2C0 目标(从器件)模式下使用。
-
I2C 实例:
I2C0 -
从器件地址:
0x50 -
SDA 引脚:
PA0 -
SCL 引脚:
PA1 -
Tx FIFO 触发级别:
1 byte -
RX FIFO 触发电平:
1 byte -
时钟延展:已启用
SysConfig 中启用的 I2C 中断
我仅启用了以下 I2C 中断:
-
DL_I2C_INTERRUPT_TARGET_START -
DL_I2C_INTERRUPT_TARGET_STOP -
DL_I2C_INTERRUPT_TARGET_TXFIFO_TRIGGER
我未启用:
-
目标 RX FIFO 中断
-
控制器模式中断
-
NACK 中断
-
仲裁丢失中断
我使用以下命令为 I2C 启用 NVIC:
NVIC_EnableIRQ(I2C_0_INST_INT_IRQN);
其中:
#define I2C_0_INST_INT_IRQN I2C0_INT_IRQn
通信设置
主 MCU 为 TMS320F280049C。
通信要求:
MSPM0 充当从器件并向主器件发送 3 个字节:
-
车辆模式(1 字节)
-
ADC 低字节
-
ADC 高字节
问题
-
如何确定哪个中断导致了
Default_Handler? -
现有的计时器/GPIO 中断与 I2C 目标中断之间是否存在任何冲突?
-
对于 MSPM0 上的意外中断、建议使用调试方法吗?
如有任何帮助、我们将不胜感激。