本帖最后由 lussby 于 2014-2-25 11:25 编辑
终于把问题解决了,我上面的程序参考官网例程在int32_t RTC_EnableInt()函数中的设置没有问题。但是在TimeProcess.c里面的程序因为我用的不是跟官网同一个库,虽然编译通过了,但实际上中断函数入口是有问题的,经过昨天一天的研究,最后把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();
}
}
}就可以了。另外也顺便测试了闹钟中断也是可以的。 |
-
qq.png
(28.88 KB, 下载次数: 467)
我设置时钟1S中断一次打印OK!时钟显示和打印结果正确
|