stm32 RTC闹钟唤醒 低功耗模式

rtc初始化

void MX_RTC_Init(void)
{RTC_TimeTypeDef sTime = {0};RTC_DateTypeDef DateToUpdate = {0};hrtc.Instance = RTC;hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND;hrtc.Init.OutPut = RTC_OUTPUTSOURCE_ALARM;if (HAL_RTC_Init(&hrtc) != HAL_OK){Error_Handler();}/* USER CODE BEGIN Check_RTC_BKUP */RTC_SET_Alarm(&sTime );if(HAL_RTCEx_BKUPRead(&hrtc,RTC_BKP_DR1)!=0X1234){HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR1,0X1234);}else return;/* USER CODE END Check_RTC_BKUP *//** Initialize RTC and set the Time and Date*/sTime.Hours = 0x0;sTime.Minutes = 0x0;sTime.Seconds = 0x0;if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK){Error_Handler();}DateToUpdate.WeekDay = RTC_WEEKDAY_MONDAY;DateToUpdate.Month = RTC_MONTH_JANUARY;DateToUpdate.Date = 0x1;DateToUpdate.Year = 0x0;if (HAL_RTC_SetDate(&hrtc, &DateToUpdate, RTC_FORMAT_BCD) != HAL_OK){Error_Handler();}
}void RTC_SET_Alarm(RTC_TimeTypeDef * sTime )
{   RTC_AlarmTypeDef alarm;HAL_RTC_GetTime(&hrtc, sTime, RTC_FORMAT_BIN);sTime->Seconds += ALARM_INTERVAL;if(sTime->Seconds >=60){sTime->Minutes += 1;sTime->Seconds = sTime->Seconds-60;if(sTime->Minutes >=60){sTime->Hours += 1;sTime->Minutes = 0;if(sTime->Hours >=24)sTime->Hours = 0;}}else ;alarm.AlarmTime.Hours   = sTime->Hours;alarm.AlarmTime.Minutes = sTime->Minutes ;alarm.AlarmTime.Seconds = sTime->Seconds ;alarm.Alarm = RTC_ALARM_A;if(HAL_RTC_SetAlarm_IT(&hrtc, &alarm, RTC_FORMAT_BIN)!= HAL_OK){Error_Handler();}}

主函数

int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_RTC_Init();MX_USART1_UART_Init();while (1){/* USER CODE BEGIN 3 */HAL_Delay(100);HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_RESET);HAL_Delay(100);HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_SET);HAL_RTC_GetTime(&hrtc, &GetTime, RTC_FORMAT_BIN);/* Get the RTC current Date */HAL_RTC_GetDate(&hrtc, &GetData, RTC_FORMAT_BIN);/* Display date Format : yy/mm/dd */printf("%02d/%02d/%02d\r\n",2000 + GetData.Year, GetData.Month, GetData.Date);/* Display time Format : hh:mm:ss */printf("%02d:%02d:%02d\r\n",GetTime.Hours, GetTime.Minutes, GetTime.Seconds);printf("\r\n");HAL_SuspendTick(); HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI;SystemClock_Config();MX_RTC_Init();}/* USER CODE END 3 */
}

5秒唤醒一次还是挺准的

stm32 RTC闹钟唤醒低功耗模式相关推荐

  1. STM32的RTC闹钟唤醒待机模式

    通过RTC闹钟不能唤醒待机模式下的STM32,但是当注释掉下面这一句程序的时候,就能通过RTC闹钟唤醒. PWR_WakeUpPinCmd(ENABLE);//使能唤醒管脚功能 这就给我们一种错误的判 ...

  2. STM32CubeMX(stm32F030C8T6) 之RTC闹钟唤醒停机模式-STM32开发实战 (2)

    一.概述 本例程是用STOP休眠模式,用RTC的周期性自动唤醒功能来唤醒芯片. 根据手册的说明:这里有个可编程的可自动重装的向下计数器,按照相应的时钟频率赋予适当的值,每当向下计数到0时便产生一个唤醒 ...

  3. stm32单片机实现多个闹钟_STM32实现对RTC闹钟唤醒的设计

    工程中用到低功耗的控制,本来想使用待机模式,后来发现待机后所有IO口为高阻态,这样对于一些IO口控制的外设有些不妥,想过外部上拉一个电阻可是功耗不好控制放弃该方案选用停止模式.停止模式后IO口保持停止 ...

  4. STM32的3种低功耗模式

    STM32的3种低功耗模式: 睡眠模式:内核停止,外设如NVIC,系统时钟Systick仍运行. 停止模式:所有时钟都已停止:1.8V内核电源工作:PLL,HIS和HSERC振荡器功能禁止:寄存器和S ...

  5. STM32:RTC闹钟唤醒

    想使用闹钟唤醒功能使系统从待机下唤醒,遇到一个问题:使用闹钟唤醒就不能使用wakeup pin唤醒.二者只能取其一. 此问题解决,画了个板子wakeup pin 接下拉电阻解决. 写新代码时候遇到一个 ...

  6. CM3计算板RTC闹钟唤醒系统

    1.前言 一个周期性控制系统的核心为CM3计算板,在电池供电情况下要求尽可能提高使用时长.由于系统空闲时长较多,因此在考虑低功耗的情况下将系统关机以进一步降低功耗.需要注意的是,系统关机后需要在指定时 ...

  7. RK3399平台开发系列讲解(应用开发篇)1.12、RTC闹钟唤醒

    平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 文章目录 一.结构体说明 itimerspec sigevent 二.定时器例子 一.结构体说明 itimerspec ...

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

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

  9. STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例)

    STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例) 目录 STM32CubeMX | STM32 F1系列HAL库低功耗 ...

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

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

最新文章

  1. Qt: 实现浮点slider和浮点spinbox
  2. ngx_lua_module-1.0.5.0 (LUA编写网页脚本,支持windows和linux)
  3. ROS知识 【6】Ubuntu20.04下安装ROS-noetic
  4. 怎么把mysql表里的时间往后推移_Mysql实战45讲笔记:2、更新语句的执行以及日志...
  5. Windows 文件含义大全
  6. Mysql库及表的基本概念、增删查改操作以及表的约束、多表联查
  7. 几张动态图弄懂递归,二叉树,二分查找简短算法
  8. html日历框架,日历.html
  9. 如何在一家大公司里受到重用
  10. 基于Centos搭建Maven 安装与使用
  11. ArcGIS操作小技巧(六)之Network Analyst工具条不能使用的解决方法
  12. 记录:protobuf在网游中的用法
  13. python将pdf中的每一页转化为图片保存
  14. 【沐风课堂】MIRG for 3DMAX材质ID随机生成器使用教程
  15. 红楼梦词云制作(带背景)
  16. 淘宝触屏版宝贝详情改造(一)
  17. FastQC 与 质控
  18. 打篮球的妙处——让男人更帅,更有魅力
  19. 一文玩转NGINX(对于NGINX,你真的了解吗?)
  20. 各开发者android平台的注册及上传方法汇总

热门文章

  1. ogg格式怎样才能转换成MP3格式
  2. 消息队列以及非常牛的kafka
  3. 接口测试一般怎么测?接口测试的流程和步骤~
  4. nmap快速扫描大量主机端口方法
  5. 大数据之数据仓库分层
  6. Pandas数据处理与分析
  7. edge浏览器怎么设置html5,win10怎么把edge浏览器设置为默认浏览器方法
  8. 《Redis视频教程》(p19)
  9. 百度AI攻略:iOCR自定义模板功能
  10. js控件封装之tree