中级会员
 
- 积分
- 286
- 金钱
- 286
- 注册时间
- 2017-2-7
- 在线时间
- 176 小时
|

楼主 |
发表于 2020-12-15 09:12:14
|
显示全部楼层
为啥我理解的RTC时钟需要设置为32767分频(1秒中断)才能保证日历的正确性,是不是理解错了,
可以不可以设置为100ms这种分频
/*******************************************************************************************/
//配置RTC为系统滴答时钟给休眠时计时
void vPortSetupTimerInterrupt( void )
{
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
// Enable PWR and BKP clocks PWR时钟(电源控制)与BKP时钟(RTC后备寄存器)使能
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
// Allow access to BKP Domain 使能RTC和后备寄存器访问
PWR_BackupAccessCmd(ENABLE);
// 使能 LSE
RCC_LSEConfig(RCC_LSE_ON);
// 等待 LSE 准备好
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
{}
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //设置RTC时钟(RTCCLK),选择LSE作为RTC时钟
// Set RTC prescaler: set RTC period to 1 millisecond
// suozhang,使用外部32.768K晶振,设置32分频,计数1024次为1S,2018年11月15日09:28:52
RTC_SetPrescaler( 32 );
//RTC_SetPrescaler( 32767 );
// Enable the RTC Interrupt
NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = configKERNEL_INTERRUPT_PRIORITY;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
// Enable the RTC Alarm Interrupt
NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = configKERNEL_INTERRUPT_PRIORITY;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
//闹钟中断接到第17线外部中断
EXTI_ClearITPendingBit(EXTI_Line17);
EXTI_InitStructure.EXTI_Line = EXTI_Line17;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
// 使能电源管理时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE);
// Enable RTC Clock
RCC_RTCCLKCmd(ENABLE);
// Wait until last write operation on RTC registers has finished
RTC_WaitForLastTask();
// 使能RTC根据选择的时钟源以及分频值的设置产生的定时中断,当做FreeRTOS时钟源
RTC_ITConfig(RTC_IT_SEC, ENABLE);
RTC_WaitForLastTask();
}
/*******************************************************************************************/ |
|