求助STM32F1系列配置RTC闹钟中断为什么需要配置中断线

2020-01-07 19:23发布

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