【极海APM32替代笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)

【STM32笔记】低功耗模式配置及避坑汇总

前文:
blog.csdn.net/weixin_53403301/article/details/128216064
【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案)


低功耗模式如图所示

停止模式有三种 分别是0 1 2
其中 0 1可以由串口唤醒
2只能由LPUART唤醒


在手册里可以查到

进入也很简单:

/*!* @brief         进入低功耗模式     ** @param  [in]    mode_flag: 模式标志*                                0/大于4 不进入任何模式,1 进入睡眠,2 进入停止,3 进入待机,4 关机*                [in]    WakeUpPinPolarity: 待机模式下WKUP唤醒引脚极性配置,其他模式无用** @return               None*/
void Enter_Low_PWR(uint8_t mode_flag,uint32_t WakeUpPinPolarity)
{   __HAL_RCC_PWR_CLK_ENABLE();switch(mode_flag){case 0:{printf("[INFO] 不进入低功耗模式\n");break;}case 1:{printf("[INFO] 进入睡眠模式\n");delay_ms(10);  //消抖__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);break;}case 2:{printf("[INFO] 进入停止模式\n");delay_ms(10);  //消抖__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_SLEEPENTRY_WFI);break;}case 3:{printf("[INFO] 三秒后进入待机模式\n");delay_ms(3000);printf("[INFO] 进入待机模式\n");HAL_PWR_EnableWakeUpPin(WakeUpPinPolarity);delay_ms(10);  //消抖__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);HAL_PWR_EnterSTANDBYMode();break;}case 4:{printf("[INFO] 三秒后进入关机模式\n");delay_ms(3000);printf("[INFO] 进入关机模式\n");HAL_PWR_EnableWakeUpPin(WakeUpPinPolarity);delay_ms(10);  //消抖__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);HAL_PWREx_EnterSHUTDOWNMode();break;}default:{printf("[INFO] 不进入低功耗模式\n");break;}}
}

要进入停止2模式则需要在pwr_ex.c中配置
HAL_PWREx_EnterSTOP2Mode();函数

其中
HAL_PWR_EnterSTOPMode中的PWR_MAINREGULATOR_ON、PWR_LOWPOWERREGULATOR_ON分别是开启稳压器和关闭稳压器 分别对应STOP 0和1

所有的模式都可以用RTC唤醒


可以在手册里面找到外部中断线 所以RTC可以唤醒任一模式

RTC开启Internal WakeUp

在Wake Up配置中 完全不用设置(后面的语句可以直接配)
另外开启唤醒中断

在进入低功耗前 需要先调用RTC唤醒中断配置

HAL_RTCEx_SetWakeUpTimer_IT(&hrtc,counter,clock);

同样 退出时 要在注册的回调里面关闭中断

void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
{__HAL_RCC_PWR_CLK_ENABLE();SystemClock_Config();__HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT();
}

注意:该唤醒方式其实是将RTC中断作为EXTI在使用

打包一下就是:

/*!* @brief         配置RTC在低功耗模式下的唤醒     ** @param  [in]    counter: 计数值*                   [in]    clock: 时钟值*                 [in]    EnableNotDisable: 使能或者关闭** @return             None*/
void Ctrl_RTC_WakeUp(uint32_t counter,uint32_t clock,bool EnableNotDisable)
{   if(EnableNotDisable){HAL_RTCEx_SetWakeUpTimer_IT(&hrtc,counter,clock);}else{__HAL_RTC_WAKEUPTIMER_EXTI_DISABLE_IT();    }
}

调用:

 Ctrl_UART_StopMode_WakeUp(&huart2,true);Ctrl_RTC_WakeUp(2000,RTC_WAKEUPCLOCK_RTCCLK_DIV16,true);Enter_Low_PWR(2,0);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){printf("[INFO] ADC: %f\n",Get_Real_ADC_Value(&hadc2));Count_ADXL345();Count_TMP75();TIM_Delay_ms(1000,&htim6);Ctrl_UART_StopMode_WakeUp(&huart2,true);Ctrl_RTC_WakeUp(2000,RTC_WAKEUPCLOCK_RTCCLK_DIV16,true);Enter_Low_PWR(2,0);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

【极海APM32替代笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)相关推荐

  1. 【极海APM32替代笔记】低功耗模式配置及配置汇总

    [极海APM32替代笔记]低功耗模式配置及配置汇总 文章总结:(后续更新以相关文章为准) [STM32笔记]低功耗模式.WFI命令等进入不了休眠的可能原因(系统定时器SysTick一直产生中断) [S ...

  2. 【STM32笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)

    [STM32笔记]低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER) [STM32笔记]低功耗模式配置及避坑汇总 前文: blog.csdn.net/weixin_5340 ...

  3. stm32f103 低功耗调试笔记 低功耗模式下一直有个800多uA的电流

    最新在做一个低功耗项目 ,用到stm32f103芯片,用到的stop模式和standby模式. 因 stop 只比 standby 模式多1-3uA,最终选用了 stop 模式.下面是官方文档中对几种 ...

  4. STM32低功耗模式下GPIO如何配置最节能?

    目录 1.将未使用的GPIO 配置为模拟输入模式 2.调节GPIO 速度 3.GPIO不使用时禁用寄存器时钟 4.避免悬空未使用的引脚 STM32低功耗模式下GPIO如何配置最节能,这里总结了一下四点 ...

  5. stm32低功耗模式下mcu的实际功耗(ST芯片手册)

    STM32F103xC. STM32F103xD和STM32F103xE增强型产品支持三种低功耗模式,可以在要求低 功耗.短启动时间和多种唤醒事件之间达到最佳的平衡. ● 睡眠模式 在睡眠模式,只有C ...

  6. android 默认静音模式设置,Android:如何在振动设置之间进行切换(始终,永不,仅在静音模式下,仅在非静音模式下)?再访...

    寻找方法来切换之间:从不模式模式 始终 仅在静音 仅在非静音 这些选择是通过路径找到的 - - 菜单>>设置>>声音>>振动---在手机上. 它是简单的导航手机上的 ...

  7. 国鼎代理极海APM32系列MCU智能扫地机方案

    为智能家居新概念的领跑者,扫地机器人正站在"懒人经济"的风口,备受市场追捧.据奥维云网数据预计,2022年国内扫地机市场规模将达178亿. APM32智能扫地机应用方案 作为国产M ...

  8. APM飞控学习笔记——自动模式下一分钟自动降落

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.自动模式简介 二.添加自动降落功能 1.飞控主循环调用逻辑 2.功能添加 总结 前言 APM是一款功能齐全的开源多 ...

  9. 【STM32笔记】低功耗模式配置及避坑汇总

    [STM32笔记]低功耗模式配置及配置汇总 文章总结:(后续更新以相关文章为准) [STM32笔记]低功耗模式.WFI命令等进入不了休眠的可能原因(系统定时器SysTick一直产生中断) [STM32 ...

最新文章

  1. CVPR2020:点云分析中三维图形卷积网络中可变形核的学习
  2. 如何用初中知识理解机器学习到底在干什么事情
  3. 企业项目开发--分布式缓存memcached(3)
  4. 【Paper】2011_Distributed fault detection for interconnected second-order systems
  5. 序列二次规划_最优控制与规划
  6. php修改linux文件权限设置,linux怎么给文件设置权限
  7. Java好学吗?Java能做什么?如何快速入门Java?
  8. ios显示gif格式图片
  9. java实现小说采集_Java实现一个小说采集程序的简单实例
  10. 各大著名汽车标志图 来历
  11. 你一定没见过的windows操作系统——windows93
  12. Win11投屏时禁止通知的方法
  13. solr mysql dih_Solr结构化数据导入DIH
  14. 最强特殊字符、表情符号、Unicdeo字符串处理
  15. 团队作业-博客2(团队介绍)
  16. Celery源码阅读 result
  17. 和俞军老师聊产品经理如何突破发展瓶颈
  18. 乐享集团控股股东分道扬镳:朱子南独掌大权,张之的退出董事会
  19. 字体的基础知识:英文字体区分练习
  20. 高清电视HDTV概述

热门文章

  1. win8.1系统如何激活
  2. WPF应用ocx控件
  3. 跨地区信息服务SP许可证(不含互联网信息服务业务)是什么许可证?
  4. 计算机专业的大学生活演讲稿,【我的大学规划1000字大一新生】_演讲稿我的大学生活规划我大一新生学校让写我的大学...
  5. LittleVGL踩坑指南03:Arduino下显示和触摸驱动配置(TFT_eSPI)
  6. JavaScript交互式网页设计 • 【第5章 JavaScript对象】
  7. 笔记本电脑 音频输出 杂音 问题的解决方案
  8. 下载网络图片两种方式
  9. 教你一招,element表格行轻松上下移动
  10. C#使用FastReport 报表初步体验(图文)