在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32 RTC鬧鐘的中斷和喚醒待機模式

汽車玩家 ? 來源:eeworld ? 作者:eeworld ? 2021-07-23 10:04 ? 次閱讀

RTC代表的是實時時鐘的意思,因為它提供的時鐘基準比較準確所以用處還是很多的。

RTC全局中斷:

void RTC_IRQHandler()

{

if(RTC_GetITStatus(RTC_IT_ALR)!=RESET) //是否鬧鐘中斷發(fā)生

{

printf("THE ALARM READY =%d \r\n",RTC_GetCounter());//輸出此時的秒數(shù)

RTC_ClearITPendingBit(RTC_IT_ALR);

PWR_BackupAccessCmd(ENABLE);

RTC_EnterConfigMode();

RTC_WaitForLastTask();

RTC_SetAlarm(40+RTC_GetCounter()); //配置下次鬧鐘為40s后

RTC_WaitForLastTask();

RTC_ExitConfigMode();

PWR_BackupAccessCmd(DISABLE);

}

if(RTC_GetITStatus(RTC_IT_SEC)!=RESET) //是否秒中斷發(fā)生

{

printf("Time is =%d \r\n",RTC_GetCounter()); //輸出此時的秒數(shù)

}

RTC_ClearITPendingBit(RTC_IT_SEC|RTC_IT_OW); //清除秒中斷標志位和溢出位

RTC_WaitForLastTask();

}


待機喚醒:

待機模式是功耗最低的一種模式。外部復位(NRST 引腳)、 IWDG 復位、 WKUP 引腳上的上升沿或 RTC 鬧鐘事件發(fā)生時,STM32從待機模式退出。其中外部復位和WKUP的方法比較簡單。主要講一下RTC鬧鐘喚醒。這兩個程序一個是讓STM32的一個管腳接按鍵,按鍵按下的時候STM32進入待機狀態(tài),當40秒的鬧鐘到來時喚醒STM32.另一個是當按鍵按下時候進入待機狀態(tài),鬧鐘設(shè)置為5S秒后,鬧鐘來臨時喚醒STM32。

void RTC_Init()

{

NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP|RCC_APB1Periph_PWR,ENABLE);

PWR_WakeUpPinCmd(ENABLE);

PWR_BackupAccessCmd(ENABLE);

BKP_DeInit();

RCC_LSEConfig(RCC_LSE_ON);

while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)

{

}

RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);

RCC_RTCCLKCmd(ENABLE);

RTC_WaitForLastTask();

RTC_WaitForSynchro();

RTC_ITConfig(RTC_IT_SEC, ENABLE);

RTC_WaitForLastTask();

RTC_EnterConfigMode();

RTC_SetCounter(0); //設(shè)置計數(shù)初始值

RTC_WaitForLastTask();

RTC_SetPrescaler(32767);

RTC_WaitForLastTask();

RTC_SetAlarm(40); //鬧鐘定時40S

RTC_WaitForLastTask();

RTC_ExitConfigMode();

NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn; //RTC全局中斷 它的優(yōu)先級要小于按鍵

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

void EXTIX_Init(void)

{

EXTI_InitTypeDef EXTI_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;

GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource5);//配置按鍵PC5為外部中斷

EXTI_InitStructure.EXTI_Line=EXTI_Line5;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; //外部中斷的優(yōu)先級高于RTC

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

void EXTI9_5_IRQHandler() //按鍵對應的外部中斷

{

EXTI_ClearITPendingBit(EXTI_Line5);

PWR_EnterSTANDBYMode(); //進入待機模式

}

void RTC_IRQHandler() //RTC的中斷

{

if(RTC_GetITStatus(RTC_IT_SEC)!=RESET)

{

printf("TIME IS =%d \r\n",RTC_GetCounter());

}

RTC_ClearITPendingBit(RTC_IT_SEC|RTC_IT_OW);

RTC_WaitForLastTask();

}


文章整合自:eeworld

編輯:ymf

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 實時時鐘
    +關(guān)注

    關(guān)注

    4

    文章

    248

    瀏覽量

    65991
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    900

    瀏覽量

    41793
收藏 人收藏

    評論

    相關(guān)推薦

    【瑞薩RA2L1入門學習】05、待機模式按鍵外部中斷喚醒 低功耗測試

    的。 任何中斷或者復位都會將MCU從睡眠模式喚醒,并開始處理中斷,這也包括Systick系統(tǒng)計時器,因此讀者如果用到了RTOS, 進入睡眠模式
    發(fā)表于 01-29 23:08

    看門狗復位是否可以喚醒待機模式

    為什么我進入待機模式后就無法喚醒,看門狗復位喚醒是需要配置什么還是無法喚醒待機
    發(fā)表于 12-21 15:09

    【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(14)RTC 模塊介紹

    GD32 MCU內(nèi)部提供了一個RTC(實時時鐘)模塊,通過RTC可以實現(xiàn)日歷時鐘、鬧鐘等功能。RTC也可以用于深度睡眠或待機
    的頭像 發(fā)表于 08-23 09:18 ?599次閱讀
    【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(14)<b class='flag-5'>RTC</b> 模塊介紹

    STM32L152進入待機模式1分鐘喚醒一次,18個小時后無法喚醒是怎么回事?

    目前在使用STM32L152時,設(shè)置了RTC喚醒,每隔1分鐘喚醒一次,周期采集數(shù)據(jù)并上傳,一開始都是正常喚醒工作,但是在18個小時候,設(shè)備就
    發(fā)表于 05-17 13:43

    STM32待機模式適合用于那些應用場景?

    對于查看STM32低功耗模式,共有三種,其中最省電的為待機模式,但是待機模式
    發(fā)表于 05-07 07:46

    stm32l151c8t6 rtc鬧鐘中斷進不了是怎么回事?

    不知道是不是配置不對 請大神幫忙看看用的是stm32l151c8t6就是進不去中斷到了制定的鬧鐘時間 沒有進中斷 求幫忙瞄一瞄是什么地方?jīng)]配置好 void
    發(fā)表于 04-29 08:05

    stm32f0待機模式rtc鬧鐘喚醒,第二次喚醒沒辦法進入睡眠什么情況?

    stm32f0待機模式rtc鬧鐘喚醒問題,第一次正常,可以進入睡眠,第二次
    發(fā)表于 04-28 07:12

    用到STM32L471的低功耗,用RTC的鬧鈴中斷喚醒遇到的疑問求解

    最近用到STM32L471的低功耗,根據(jù)綜合考慮選用STOP2模式(任意中斷喚醒),用RTC的鬧鈴中斷
    發(fā)表于 04-23 06:25

    STM32L051同時開啟RTC時間戳和秒喚醒后,使用GPIO引腳無法觸發(fā)時間戳中斷如何解決?

    STM32L051同時開啟RTC時間戳和秒喚醒后,使用GPIO引腳無法觸發(fā)時間戳中斷。但使用一個3.3V的電源接到PC13能夠觸發(fā)RTC時間
    發(fā)表于 04-01 06:37

    使用RTC ALARM A鬧鐘喚醒STM32F030c8t6和WAKEUP引腳外部喚醒喚醒以后進行校準時間有偏差正常嗎?

    使用了RTC ALARM A鬧鐘喚醒STM32F030c8t6和WAKEUP引腳外部喚醒 ,當外部喚醒
    發(fā)表于 03-27 07:33

    STM32F030F4P6進入停止模式后,外部中斷引腳觸發(fā)不能喚醒的原因?

    stm32f030f4p6 使用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFE);進入停止模式后,外部中斷引腳觸發(fā)不能
    發(fā)表于 03-27 06:05

    STM32F103C8T6 STOP模式無法通過RTC喚醒是為什么?

    使用如下函數(shù) RTC_SetAlarm(RTC_GetCounter()+10); //設(shè)置待機時間 PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);//
    發(fā)表于 03-25 06:12

    ST32C031用RTC喚醒不了standby及shutdown模式,為什么?

    274頁中有描述: 文檔中是可以用RTC中斷事件來喚醒的。但是我在工程中配置好的PWR、RTC,卻喚醒不了。只能在stop
    發(fā)表于 03-19 07:55

    STM32WL55啟用Radio初始化,RTC待機喚醒模式失效的原因?

    排查了很久,發(fā)現(xiàn)使用了Radio.Init();函數(shù)后原本使用的Standby模式被一直喚醒(程序使用的是RTC5秒喚醒),有老哥知道原因嗎?
    發(fā)表于 03-12 08:34

    RTC在DeepSleep模式喚醒后無效的原因?

    的時間。 隨意配置。但是如果是Deepsleep模式喚醒后需要重新配置RTC時間,就不成功。 我看RTC是可以喚醒DeepSleep
    發(fā)表于 02-19 08:20
    主站蜘蛛池模板: 黄蓉h肉辣文大全 | 免费在线观看一级片 | 久久久久88色偷偷免费 | 欧美瑟瑟 | 久久99热精品免费观看无卡顿 | 亚洲成人免费在线观看 | 久久天天躁夜夜躁狠狠85麻豆 | 四虎影视最新地址 | 欧美视频三区 | 中国xxxxx高清免费看视频 | 天天做天天添婷婷我也去 | heyzo在线播放4k岛国 | 欧美成人一区二区三区在线视频 | 黄色顶级视频 | 韩国精品视频 | 国产普通话一二三道 | 一级做受毛片免费大片 | 大桥未久加勒比女热大陆在线 | 久久综合香蕉久久久久久久 | 欧美精品xxxⅹ欧美 欧美精品高清在线xxxx | 韩日一级毛片 | 激情综合网激情 | 五月婷婷丁香久久 | 欧美一级片在线免费观看 | 四虎精品久久 | 狠狠五月深爱婷婷网免费 | 精品久久久久国产免费 | 亚洲人成亚洲人成在线观看 | 五月天婷婷丁香花 | 日本不卡在线播放 | 免费国产h视频在线观看 | 久久综合九色综合97婷婷群聊 | 激情久久久久久久久久久 | 国产国产人免费人成免费视频 | 黄色大片视频在线观看 | 香蕉操 | 她也啪97在线视频 | 久久国产美女 | 久久久午夜毛片免费 | 欧美一区视频 | 综合五月婷婷 |