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

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

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

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

使用MM32F0270 LPTIM從STOP模式喚醒

jf_pJlTbmA9 ? 來(lái)源:靈動(dòng)MM32MCU ? 作者:靈動(dòng)MM32MCU ? 2023-10-26 16:46 ? 次閱讀

許多的工業(yè)與消費(fèi)類應(yīng)用中,越來(lái)越多的需要使用低功耗功能,使用定時(shí)喚醒,停機(jī)減低功耗。靈動(dòng)微電子推出的MM32F0270系列,支持多種靈活的低功耗模式,還支持LPTIM和LPUART的外設(shè)。

本文介紹了如何使用 MM32F0270的LPTIM來(lái)實(shí)現(xiàn)定時(shí)1s從STOP方式的低功耗模式中喚醒。實(shí)現(xiàn)使用LPTIM1,在低功耗stop模式下定時(shí)1s,1s后將MM32F0270從stop模式喚醒,并且點(diǎn)亮LED燈。

01、MM32F0270 LPTIM的簡(jiǎn)要介紹

LPTIM即低功耗定時(shí)器,得益于其定時(shí)器的低功耗。由于 LPTIM 的時(shí)鐘源具有多樣性,因此 LPTIM 能夠在所有電源模式(待機(jī)模式除外)下保持運(yùn)行狀態(tài)。

即使沒(méi)有內(nèi)部時(shí)鐘源, LPTIM 也能運(yùn)行,可將其用作“脈沖計(jì)數(shù)器”,這種脈沖計(jì)數(shù)器在一些特定的應(yīng)用中十分有用。

LPTIM 可以支持MCU從低功耗STOP模式喚醒,非常適合實(shí)現(xiàn)“超時(shí)功能”,而且功耗極低。

LPTIM是低功耗產(chǎn)品在低功耗功耗模式下定時(shí)的最佳選擇。

wKgaomUD8YOASwPfAADJeldp6F0450.png 圖1 LPTIM的功能框圖

02、LPTIM 的功能特性

2.1 MM32的LPTIM具有以下特性:

16 位遞增計(jì)數(shù)器

3-bit 異步時(shí)鐘預(yù)分頻器,對(duì)應(yīng)的分頻系數(shù)分別為 1、2、4、8、16、32、64、128

時(shí)鐘源可選:

內(nèi)部時(shí)鐘源:LSI_CLK 和 PCLK

外部時(shí)鐘源:LSE_CLK

16-bit 比較寄存器和目標(biāo)值寄存器

觸發(fā)源可選:硬件觸發(fā)、軟件觸發(fā)

輸入極性可選

外部脈沖計(jì)數(shù)(無(wú)時(shí)鐘時(shí))

低功耗超時(shí)喚醒功能

PWM 輸出

2.2 MM32F0270 LPTIM中斷

LPTIM 的中斷包括:外部觸發(fā)中斷,比較匹配中斷, 計(jì)數(shù)器溢出中斷, 當(dāng)相應(yīng)的中斷使能位打開(kāi),發(fā)生相應(yīng)的事件時(shí),產(chǎn)生相應(yīng)的中斷。

需要使用喚醒時(shí),需要使能相應(yīng)的中斷外,還需配置EXTI使能相關(guān)的功能。

相關(guān)的寄存器與控制狀態(tài)位的控制與查詢,可以參考用戶手冊(cè)。

03、LPTIM 從STOP模式喚醒的軟硬件設(shè)計(jì)

LPTIM是如何控制配置實(shí)現(xiàn)定時(shí)1s喚醒STOP 模式的呢?

3.1 在庫(kù)函數(shù)版本的樣例中可以通過(guò)如下順序初始化LPTIM

a. 使能LPTIM外設(shè)時(shí)鐘;

RCC_APB2PeriphClockCmd(RCC_APB2ENR_LPTIM1, ENABLE);

b. 配置LPTIM的LPTIM_TimeBaseInit_TypeDef結(jié)構(gòu)體中指定的參數(shù)

選擇時(shí)鐘源為L(zhǎng)SE 32.768KHz;

選擇計(jì)數(shù)模式為連續(xù)計(jì)數(shù)模式;

時(shí)鐘分頻為DIV1;

 LPTIM_TimeBaseStructInit( init_struct);
    //Setting LPTIM base
    init_struct.ClockSource            = LPTIM_LSE_Source;//LPTIM_PCLK_Source;//LPTIM_LSI_Source;//
    init_struct.CountMode              = LPTIM_CONTINUOUS_COUNT_Mode;
    init_struct.OutputMode             = LPTIM_NORMAL_WAV_Mode;
    init_struct.Waveform               = LPTIM_AdjustPwmOutput_Mode;
    init_struct.Polarity               = LPTIM_Positive_Wave;
    init_struct.ClockDivision          = LPTIM_CLK_DIV1;

c. 開(kāi)啟LSE 32.768KHz的時(shí)鐘,等待穩(wěn)定;

 if(init_struct.ClockSource == LPTIM_LSE_Source) {
        RCC_APB1PeriphClockCmd(RCC_APB1ENR_PWR | RCC_APB1ENR_BKP, ENABLE); //RCC->BDCR |= 1 << 24;
        PWR_BackupAccessCmd(ENABLE);
        RCC_LSEConfig(RCC_LSE_ON);
        DelayNop_Ms(1000);
        while(!RCC_GetFlagStatus(RCC_FLAG_LSERDY));
        LPTIM_CLKConfig(LPTIM1, LPTIM_LSE_Source);
    }

d. 調(diào)用函數(shù)LPTIM_TimeBaseInit設(shè)置參數(shù)及比較器值與目標(biāo)值;

LPTIM_TimeBaseInit(LPTIM1,  init_struct);
    LPTIM_SetCompare(LPTIM1, arr / 2 - 1);
    LPTIM_SetTarget(LPTIM1, arr);

在這設(shè)定結(jié)合時(shí)鐘源時(shí)鐘,分頻系數(shù)與Target值,得到定時(shí)1s的定時(shí)值。

e. 設(shè)定NVIC 參數(shù)與EXTI參數(shù);

void NVIC_Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;
    EXTI_InitTypeDef EXTI_InitStructure;

    EXTI_DeInit();     //set EXTI as WFI
    EXTI_InitStructure.EXTI_Line = EXTI_Line23 ;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt ;
    EXTI_InitStructure.EXTI_Trigger =   EXTI_Trigger_Rising_Falling;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init( EXTI_InitStructure);
    EXTI_ClearITPendingBit(EXTI_Line23);

    NVIC_InitStructure.NVIC_IRQChannel = LPTIMER1_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init( NVIC_InitStructure);
}

f. 中斷相應(yīng)處理函數(shù)

void LPTIMER1_IRQHandler(void)
{
    if(LPTIM_GetITStatus(LPTIM1, LPTIF_OVIF)) {
        LPTIM_ClearITPendingBit(LPTIM1, LPTIF_COMPIF | LPTIF_TRIGIF | LPTIF_OVIF);
        EXTI_ClearITPendingBit(EXTI_Line23);
        LPTIM_ITConfig(LPTIM1, LPTIE_COMPIE | LPTIE_TRIGIE | LPTIE_OVIE, DISABLE);
    }
}

3.2 實(shí)現(xiàn)Demo功能的主要函數(shù)代碼:

void MCU_EnterSTOP_WFI(void)
{
    PWR_EnterSTOPMode(PWR_Regulator_ON, PWR_STOPEntry_WFI);
}
void LPTIM_Function_Demo(void)
{
    int i;
    DelayNop_Init();
    LPTIM1_Init(32768 - 1);
    NVIC_Configuration();
    LED1_OFF();
    LED1_TOGGLE();
    LED1_TOGGLE();
    for(i = 0; i < 10; i++) {
        __NOP();//
        DelayNop_Ms(2);
        LED1_TOGGLE();
    }
    LED1_OFF();    
    LPTIM_ITConfig(LPTIM1, LPTIE_OVIE, ENABLE);

    for(i = 0; i < 10; i++) {
        __NOP();//
        DelayNop_Ms(1);
        LED2_TOGGLE();
    }
    LED1_OFF();
    MCU_EnterSTOP_WFI();
    SystemInit();
    while (1) {
        LED3_TOGGLE();
        __NOP();//
        DelayNop_Ms(4);
    }
}

配置好初始化LPTIM與LED閃燈的初始化操作后,執(zhí)行翻轉(zhuǎn)5次LED燈的操作;

進(jìn)入STOP 模式。

延時(shí)1S后,定時(shí)從STOP模式喚醒。

喚醒后繼續(xù)執(zhí)行LED閃燈程序。

wKgZomUD8YWAFeu8AACLvgglodw900.png

通過(guò)上述的步驟,簡(jiǎn)單的演示了MM32F0270的LPTIM 定時(shí)1s喚醒的功能。

下載MM32F0270 lib_Samples,工程路徑如下:

~ MM32F0270_SamplesLibSamplesLPTIM

來(lái)源:靈動(dòng)MM32MCU
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)聯(lián)系小編進(jìn)行處理

審核編輯 黃宇

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

    關(guān)注

    242

    文章

    23370

    瀏覽量

    663280
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17336

    瀏覽量

    352684
  • STOP模式
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    3123
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32U575為什么無(wú)法通過(guò)LPTIM3將MCUSTOP2模式喚醒

    客戶在 STM32U575 的研發(fā)過(guò)程中發(fā)現(xiàn)了一個(gè)奇怪的問(wèn)題,無(wú)法通過(guò) LPTIM3 將MCU STOP2 模式喚醒
    發(fā)表于 09-27 07:22

    LPTIM無(wú)法喚醒STOP1的原因?

    ;WakeUp(喚醒設(shè)備)-->Blink(LED燈閃爍)理論情況下進(jìn)入Stop1模式之后,觸發(fā)LPTIM中斷應(yīng)該會(huì)喚醒設(shè)備,然后LE
    發(fā)表于 05-24 07:35

    使用stm32f0的STOP模式,通過(guò)WFE進(jìn)入STOP后,被GPIO的INT喚醒了,不應(yīng)該是被GPIO的EVENT喚醒嗎?

    大家好, 最近使用F0的STOP模式遇到一個(gè)問(wèn)題,在通過(guò)WFE進(jìn)入STOP后,被GPIO的INT喚醒了,不應(yīng)該是被GPIO的EVENT
    發(fā)表于 05-11 07:10

    STM32F107的OTG在stop模式下無(wú)法通過(guò)EXTI_18喚醒,沒(méi)有中斷產(chǎn)生是怎么回事?

    進(jìn)入STOP模式等wfi中斷喚醒,無(wú)論如何操作都沒(méi)法進(jìn)入OTG_FS_WKUP_IRQHandler喚醒,有使用過(guò)該功能的嗎? 另外F103
    發(fā)表于 05-06 08:59

    STM32L152進(jìn)入STOP模式,WAKEUP by RTC喚醒后ADC讀取數(shù)值不變了怎么解決?

    ),進(jìn)入STOP,RTC喚醒后讀出來(lái)的ADC沒(méi)有變化(依然是4.10V)。以前沒(méi)有進(jìn)入STOP模式,連續(xù)讀取是OK的。 請(qǐng)問(wèn)大蝦,這大概是什么問(wèn)題?
    發(fā)表于 04-26 08:27

    stm32外部中斷不能喚醒stop休眠模式怎么解決?

    按鍵引腳設(shè)置成外部中斷方式,可以正常喚醒stop模式;但是充電口設(shè)置成外部中斷,卻無(wú)法喚醒stop休眠!!!配置都是一樣的,按鍵下降沿觸發(fā),
    發(fā)表于 04-26 06:11

    STM32F103STOP模式喚醒后串口不工作的原因?

    如題,不進(jìn)入STOP模式沒(méi)有問(wèn)題,STOP中斷喚醒后,就無(wú)法收發(fā)數(shù)據(jù)。相關(guān)寄存器操作都正常,但就是沒(méi)有數(shù)據(jù)
    發(fā)表于 04-24 07:50

    STM32F030進(jìn)入Stop模式后進(jìn)行RTC喚醒,MCU沒(méi)有進(jìn)入STOP模式,這個(gè)是什么原因啊?

    (PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI)進(jìn)入STOP模式正常,但是RTC喚醒后第二次調(diào)用HAL_PWR_EnterSTOPMode函數(shù)發(fā)現(xiàn)MCU沒(méi)有進(jìn)入
    發(fā)表于 04-16 08:01

    請(qǐng)問(wèn)STM32L431 STOP2模式DEBUG如何才能好用?

    STM32L431 STOP2模式 DEBUG如何才能好用?跪求幫助謝謝!! STM32L431 進(jìn)入STOP2模式,已經(jīng)開(kāi)啟HAL_DBGMCU_EnableDBGStopMode
    發(fā)表于 04-15 08:15

    STM32F070下載程序后必須掉電重啟,進(jìn)STOP模式才正常,為什么?

    最近需要一個(gè)奇怪的現(xiàn)象: STM32F070的片子,在用st-link下載軟件重啟后,只要一進(jìn)stop就會(huì)被立刻喚醒(像是一個(gè)未知的中斷),必須斷電重啟后,進(jìn)STOP
    發(fā)表于 04-15 08:13

    stop模式下讓LPTIM1和LPTIM2輸出兩路相同的PWM,不管是用LSI還是LSE都會(huì)有200us的相位差,為什么?

    我這邊要在stop模式下讓LPTIM1和LPTIM2輸出兩路相同的PWM,不管是用LSI還是LSE都會(huì)有200us的相位差,但是不在stop
    發(fā)表于 04-03 08:25

    STM32L051C8T6 HAL進(jìn)入STOP模式RTC喚醒后,ADC采樣值不對(duì)怎么解決?

    STM32L051C8T6HAL 進(jìn)入STOP模式RTC喚醒后,ADC采樣值不對(duì)! 程序如果不進(jìn)入STOP模式,ADC在WHILE(1)主程
    發(fā)表于 03-25 07:35

    STM32L053R8T6的TSC功能,外部按鍵怎么喚醒stop模式呢?

    STM32L053R8T6的 TSC功能,外部按鍵怎么喚醒 stop模式?哪個(gè)大佬 有TSC相關(guān)開(kāi)發(fā)程序用CUBEMX開(kāi)發(fā) ,但這個(gè)TSC功能怎么打開(kāi)
    發(fā)表于 03-25 06:22

    用STM32cube生成的lptim的例程只能運(yùn)行在MCU的stop模式嗎?

    請(qǐng)給一個(gè)用STM32cube生成的lptim的例程,可以啟動(dòng)LPTIM,并可以計(jì)入中斷的例程。 LPTIM只能運(yùn)行在MCU的stop模式么?
    發(fā)表于 03-22 07:22

    stm32進(jìn)入stop模式后,為什么uart還能觸發(fā)中斷并喚醒stm32呢?

    我的理解是stm32進(jìn)入stop模式后,外設(shè)時(shí)鐘都停掉了,比如uart的時(shí)鐘,也就是說(shuō)uart無(wú)法收數(shù)據(jù)了,為什么uart還能觸發(fā)中斷并喚醒stm32呢
    發(fā)表于 03-15 08:16
    主站蜘蛛池模板: 一区二区亚洲视频 | 欧美高清性色生活 | 国产未成女年一区二区 | 亚洲经典乱码在线播 | 91久久人澡人人添人人爽 | 好爽好深太大了再快一点 | 丝袜紧身裙国产在线播放 | 四虎日韩| 午夜高清免费观看视频 | 久久综合色综合 | 一级毛片ab片高清毛片 | 毛片网站免费在线观看 | 日本口工禁漫画无遮挡全彩 | 一区二区三区影院 | 国产拳头交一区二区 | 国产亚洲卡二卡3卡4卡乱码 | 男人边吃奶边做视频免费网站 | 亚洲第一狼人社区 | 韩国理论片2023现在观看 | 日本日b视频 | 欧美三级大片在线观看 | 91md天美精东蜜桃传媒在线 | 国产黄色片网站 | 国产高清美女一级a毛片 | 伊人网站在线 | 久久夜夜操 | 免费看大美女大黄大色 | 黄a级免费| 欧美高清xx | 久久人人爽爽爽人久久久 | 激情综合五月 | 亚洲婷婷国产精品电影人久久 | 在线免费看视频 | 最近最新视频中文字幕4 | 天堂在线中文字幕 | 7799国产精品久久久久99 | japanese日本护士xx亚洲 | 天天摸天天操天天干 | 欧美人另类zooz | 四虎8848精品永久在线观看 | 中文字幕乱码人成乱码在线视频 |