这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » NUC123使用I2C0的话会进入不了I2C中断服务程序,怎么解决?

共2条 1/1 1 跳转至

NUC123使用I2C0的话会进入不了I2C中断服务程序,怎么解决?

工程师
2024-10-19 19:04:55     打赏
发现NUC123如果使用I2C0(PF2和PF3)的话会进入不了I2C中断服务程序。但是如果使用I2C1的话就可以。我试了“NUC123SeriesBSP_CMSIS_V1.01.006”里面的


NUC123SeriesBSP_CMSIS_V1.01.006NUC123SeriesBSP_CMSIS_V1.01.006SampleCodeI2C_MASTER


里面的main.c默认是使用I2C0,但是我发现程序跑起来是进入不了中断服务程序“I2C0_IRQHandler”的。如果使用I2C1(PA10和PA11), 同时加入I2C1的中断服务程序“I2C1_IRQHandler”, 这样程序跑起来的话就可以进入中断服务程序“I2C1_IRQHandler”。


因为我们的板子使用的是NUC123的I2C0,所以请问怎么样才能正确配置I2C0?





关键词: NUC123     I2C     中断    

助工
2024-10-19 19:05:10     打赏
2楼

1. 确保I2C0的中断使能位被正确配置。在中断初始化代码段中,确保对应的中断使能位被设置为1,可以通过修改NVIC_EnableIRQ(I2C0_IRQn)代码实现。

2. 检查I2C0的中断优先级。确保I2C0的中断优先级高于其他中断,这样才能保证I2C0中断的及时响应。可以通过NVIC_SetPriority(I2C0_IRQn, x)函数来设置中断优先级。

3. 检查I2C0的时钟使能位。在使用I2C0之前,需要确保I2C0的时钟使能位被设置为1。这可以通过修改CLK_EnableModuleClock(I2C0_MODULE)代码来实现。

4. 检查引脚配置。确保I2C0的引脚配置正确,并且与代码中的配置一致。可以通过修改GPIO_SetMode()函数来配置引脚。

5. 确保I2C从设备地址正确。如果从设备地址配置不正确,可能会导致I2C通信失败或无法进入中断服务程序。请检查从设备地址的配置是否正确。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]