完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
发现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?
|
|
相关推荐
2个回答
|
|
请下载最新的BSP测试一下
|
|
|
|
有几种可能的原因导致NUC123无法进入I2C0中断服务程序。以下是一些可能的解决方法:
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通信失败或无法进入中断服务程序。请检查从设备地址的配置是否正确。 如果上述方法都不能解决问题,可能需要检查硬件连接和引脚设置是否正确。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
298 浏览 1 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
309 浏览 0 评论
826 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1911 浏览 2 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1427 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12032 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 09:53 , Processed in 0.656932 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号