开发环境:Keil5.14+STM32f103zet6
大体介绍下,我采集一个数据,把这个数据通过fatfs写入sd卡中,我想实现的是一个小时为间隔写入一次,并且写入SD的时候需要写入当前时间(XXX年XX月XX日XX时XX分XX秒).
所以我就想到使用单片机本身的RTC,用秒中断更新当前系统时间,用闹钟中断实现一小时中断(毕竟,这里使用定时器似乎有点不方便).
一开始一直不能进入闹钟中断(秒中断是可以的),于是网上找资料,需要配置外部中断线17(它连接到RTC闹钟事件).加入这段代码(如下),果然可以进入闹钟中断了,接下来我就郁闷了...
[mw_shl_code=c,true]static void RTC_Alarm_EXIT(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
EXTI_ClearITPendingBit(EXTI_Line17);
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Line = EXTI_Line17;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}[/mw_shl_code]
问题1: 我理解的闹钟中断,就是一个放大版的定时器(比定时器的定时时间更长),难道我理解有误?
问题2: RTC闹钟中断连接到中断线17,那中断线17又到底连接到哪个GPIO,还是说这个GPIO随意配置个GPIO都行?
问题3: 因为我这里根本就不需要触发GPIO,为什么不配置EXTI就进入不了闹钟中断?
说的有点啰嗦,还请大神能看懂,在此,感谢大神~~~
一周热门 更多>