stm32 RTC闹钟唤醒低功耗模式
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闹钟唤醒低功耗模式相关推荐
- STM32的RTC闹钟唤醒待机模式
通过RTC闹钟不能唤醒待机模式下的STM32,但是当注释掉下面这一句程序的时候,就能通过RTC闹钟唤醒. PWR_WakeUpPinCmd(ENABLE);//使能唤醒管脚功能 这就给我们一种错误的判 ...
- STM32CubeMX(stm32F030C8T6) 之RTC闹钟唤醒停机模式-STM32开发实战 (2)
一.概述 本例程是用STOP休眠模式,用RTC的周期性自动唤醒功能来唤醒芯片. 根据手册的说明:这里有个可编程的可自动重装的向下计数器,按照相应的时钟频率赋予适当的值,每当向下计数到0时便产生一个唤醒 ...
- stm32单片机实现多个闹钟_STM32实现对RTC闹钟唤醒的设计
工程中用到低功耗的控制,本来想使用待机模式,后来发现待机后所有IO口为高阻态,这样对于一些IO口控制的外设有些不妥,想过外部上拉一个电阻可是功耗不好控制放弃该方案选用停止模式.停止模式后IO口保持停止 ...
- STM32的3种低功耗模式
STM32的3种低功耗模式: 睡眠模式:内核停止,外设如NVIC,系统时钟Systick仍运行. 停止模式:所有时钟都已停止:1.8V内核电源工作:PLL,HIS和HSERC振荡器功能禁止:寄存器和S ...
- STM32:RTC闹钟唤醒
想使用闹钟唤醒功能使系统从待机下唤醒,遇到一个问题:使用闹钟唤醒就不能使用wakeup pin唤醒.二者只能取其一. 此问题解决,画了个板子wakeup pin 接下拉电阻解决. 写新代码时候遇到一个 ...
- CM3计算板RTC闹钟唤醒系统
1.前言 一个周期性控制系统的核心为CM3计算板,在电池供电情况下要求尽可能提高使用时长.由于系统空闲时长较多,因此在考虑低功耗的情况下将系统关机以进一步降低功耗.需要注意的是,系统关机后需要在指定时 ...
- RK3399平台开发系列讲解(应用开发篇)1.12、RTC闹钟唤醒
平台 内核版本 安卓版本 RK3399 Linux4.4 Android7.1 文章目录 一.结构体说明 itimerspec sigevent 二.定时器例子 一.结构体说明 itimerspec ...
- 【STM32笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)
[STM32笔记]低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER) [STM32笔记]低功耗模式配置及避坑汇总 前文: blog.csdn.net/weixin_5340 ...
- STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例)
STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例) 目录 STM32CubeMX | STM32 F1系列HAL库低功耗 ...
- 【极海APM32替代笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)
[极海APM32替代笔记]低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER) [STM32笔记]低功耗模式配置及避坑汇总 前文: blog.csdn.net/weixin_ ...
最新文章
- Qt: 实现浮点slider和浮点spinbox
- ngx_lua_module-1.0.5.0 (LUA编写网页脚本,支持windows和linux)
- ROS知识 【6】Ubuntu20.04下安装ROS-noetic
- 怎么把mysql表里的时间往后推移_Mysql实战45讲笔记:2、更新语句的执行以及日志...
- Windows 文件含义大全
- Mysql库及表的基本概念、增删查改操作以及表的约束、多表联查
- 几张动态图弄懂递归,二叉树,二分查找简短算法
- html日历框架,日历.html
- 如何在一家大公司里受到重用
- 基于Centos搭建Maven 安装与使用
- ArcGIS操作小技巧(六)之Network Analyst工具条不能使用的解决方法
- 记录:protobuf在网游中的用法
- python将pdf中的每一页转化为图片保存
- 【沐风课堂】MIRG for 3DMAX材质ID随机生成器使用教程
- 红楼梦词云制作(带背景)
- 淘宝触屏版宝贝详情改造(一)
- FastQC 与 质控
- 打篮球的妙处——让男人更帅,更有魅力
- 一文玩转NGINX(对于NGINX,你真的了解吗?)
- 各开发者android平台的注册及上传方法汇总