完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
是这样的,我的硬件是外部接了12M晶振,以及RTC时钟的两个引脚接了32.768K的晶振,用官网的RTC例程测试,时钟和中断都可以。我用了我们之前新唐供应商给的库程序,时钟显示跟实际时间比较,显示正确。但是要进入RTC中断(中断函数里面用了点亮一个灯和串口打印字符"OK"没反应)进入不了。在这求大神指点一下,看我是那里出错了,在此先谢谢您的帮忙了。
|
|
相关推荐
2个回答
|
|
把Drv_RTC里面的中断函数进行修改后,发现1/128s. 1/64s,1/32s,1/16s,1/8s,1s等的中断都可以了。把TimeProcess.c里面的中断函数改为
void RTC_IRQHandler(void) { if (RTC->RIIR.TI ==0x1) /* tick interrupt occurred */ { RTC->RIIR.TI = 1; g_u32RTC_Count++; /* maintain RTC tick count */ printf ("nOK!n"); if (g_pfnRTCCallBack_Tick != NULL) /* execute tick callback function */ { g_pfnRTCCallBack_Tick(); } } } 就可以了。另外也顺便测试了闹钟中断也是可以的。 |
|
|
|
根据您的描述,您的硬件连接和时钟操作是正确的,并且时钟显示正常。然而,您的RTC中断无法正常工作。
首先,您可以检查以下几点来排查问题: 1. 确保您的中断配置正确。您需要设置正确的中断向量以及对应的优先级,并将中断使能位设置为1。请检查您的库程序中是否正确配置了RTC中断相关寄存器。 2. 检查您的中断服务函数是否正确。确认中断服务函数的命名、参数和返回类型与库程序的要求相匹配。确保您的中断服务函数中的点亮灯和串口打印代码是正确的。 3. 确保您的中断服务函数被正确地注册到中断向量表中。在一些库程序中,您需要将您的中断服务函数的地址注册到中断向量表中,以便将中断向量与您的中断服务函数关联起来。 如果您已经排除了上述问题,仍然无法进入RTC中断,您可以尝试以下进一步的调试操作: 1. 使用调试器来跟踪您的代码执行情况。检查您的中断服务函数是否被调用,以及它是否可以通过点亮灯和串口打印字符来进行调试。确保您的代码中没有其他地方禁止了中断。 2. 检查RTC中断标志位是否正确设置。某些RTC芯片的中断标志位在中断处理后需要手动清除,以便让RTC继续产生中断。请检查您的库程序文档或数据手册以获取相关信息。 最后,您可以参考新唐供应商提供的库程序的文档或联系他们的技术支持部门,以获取更具体的帮助。他们可能能够为您提供更详细的调试步骤或特定的解决方案。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12010 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:54 , Processed in 0.662909 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号