您好,
我正在尝试为 i2c 2总线启用 NVIC 的中断。
当我 这样做时,巴士会被绞死,不知道为什么。
下面是在缺少内容时使用 i2c2帮助我的代码
---------------------------------------------------- 代码-------------------------------------------------------
SysCtlPeripheralDisable (SYSCTL_Periph_I2C2);
SysCtlPeripheralReset (SYSCTL_Periph_I2C2);
SysCtlPeripheralEnable (SYSCTL_Periph_I2C2);
//使用系统时钟启用和初始化 I2C 主模块。
// I2C 传输速率将始终为100kHz。
//
MAP_I2CMasterInitExpClk (I2C2_MASTER_BASE、 SysCtlClockGet ()、false);
// map_I2CMasterGlitchFilterConfigSet (I2C2_master_BASE、I2C_master_glitch_filter_32);
HWREG (I2C2_MASTER_BASE + I2C_O_MCR2)|=(6<<4);//设置为16时钟干扰滤波器
HWREG (I2C2_MASTER_BASE + I2C_O_MCR)|=(1<<6);//并立即启用
//
//将总线超时配置为25ms。 25ms 的12位值为0x9C4 (2500
//时钟)、将高8位舍入到0x9C。 每个时钟的周期为10us
CiscoI2C 需要100kHz I2C。
//
MAP_I2CMasterTimeoutSet (I2C2_MASTER_BASE、0x9C);
MAP_I2CMasterIntEnableEx (I2C2_MASTER_BASE、I2C_MASTER_INT_DATA | I2C_MASTER_INT_TIMEOUT);
ROM_IntEnable (INT_I2C2);
------------------------------------------------------------------
代码中的这个特定函数导致了这个问题。
ROM_IntEnable (INT_I2C2);
谢谢、
Rohith