c语言wakeup函数,关于RTC时钟RTC_Set_WakeUp(u32 wksel,u16 cnt)函数的疑惑
函數(shù)原型:
void RTC_Set_WakeUp(u32 wksel,u16 cnt)
{
EXTI_InitTypeDef? ?EXTI_InitStructure;
RTC_WakeUpCmd(DISABLE);//關(guān)閉WAKE UP
RTC_WakeUpClockConfig(wksel);//喚醒時鐘選擇
RTC_SetWakeUpCounter(cnt);//設(shè)置WAKE UP自動重裝載寄存器
RTC_ClearITPendingBit(RTC_IT_WUT); //清除RTC WAKE UP的標志
EXTI_ClearITPendingBit(EXTI_Line22);//清除LINE22上的中斷標志位
RTC_ITConfig(RTC_IT_WUT,ENABLE);//開啟WAKE UP 定時器中斷
RTC_WakeUpCmd( ENABLE);//開啟WAKE UP 定時器
EXTI_InitStructure.EXTI_Line = EXTI_Line22;//LINE22
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中斷事件
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿觸發(fā)
EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE22
EXTI_Init(&EXTI_InitStructure);//配置
NVIC_InitStructure.NVIC_IRQChannel = RTC_WKUP_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;//搶占優(yōu)先級1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子優(yōu)先級2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中斷通道
NVIC_Init(&NVIC_InitStructure);//配置
}
主函數(shù)中調(diào)用:RTC_Set_WakeUp(RTC_WakeUpClock_CK_SPRE_16bits,0);??//配置WAKE UP中斷,1秒鐘中斷一次
為什么這里的cnt設(shè)置為0?怎么算出來1秒鐘中斷一次?
@正點原子? ? 謝謝原子哥!
總結(jié)
以上是生活随笔為你收集整理的c语言wakeup函数,关于RTC时钟RTC_Set_WakeUp(u32 wksel,u16 cnt)函数的疑惑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成都 java_成都Java开发程序员薪
- 下一篇: 寄云科技获Pre-A轮千万元融资:开启云