码迷,mamicode.com
首页 > 其他好文 > 详细

STM32的待机与唤醒试验

时间:2019-05-17 20:45:37      阅读:492      评论:0      收藏:0      [点我收藏+]

标签:init   节能   唤醒   res   set   靠谱   按键   rtc   oid   

因为要节能,这个星期折腾待机与唤醒,首先是待机与按键的唤醒,下载和看了N多网上的资料,千转百回,还是官方资料靠谱。
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_DMA_Init();
MX_ADC_Init();
MX_LPUART1_UART_Init();
MX_USART1_UART_Init();
MX_RTC_Init();
HAL_RTC_MspInit(&hrtc);
GetCurrentDateTime();//得到当前的时间和日期
ITMP=(uint8_t)CurrentTime.Minutes+1;//设置为当前的下一分钟唤醒
RTC_Set_AlarmA(CurrentTime.Hours,ITMP,0);//重新设置闹钟
printf("CurrentTime :%02d:%02d:%02d\r\n",CurrentTime.Hours, CurrentTime.Minutes,CurrentTime.Seconds); //显示时分秒
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0, GPIO_PIN_RESET);HAL_Delay(100);//亮
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0, GPIO_PIN_SET);HAL_Delay(100);//灭
WakeUp_Init();
while (1)
{
LED0_0;HAL_Delay (100); //GPIOB-0 15亮
LED1_0;HAL_Delay (100); //GPIOB-1 15亮
LED0_1;HAL_Delay (100); //GPIOB-0 15灭
LED1_1;HAL_Delay (100); //GPIOB-1 15灭
}
}

void WakeUp_Init(void)
{
SystemPower_Config();
if(__HAL_PWR_GET_FLAG(PWR_FLAG_SB) != RESET)
{
HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB);
}
HAL_Delay(3000);
HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN1);
HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
HAL_PWR_EnterSTANDBYMode();
}
程序刷机后,启动后3秒进入待机状态,按下PA0对应的键系统再次启动,3秒后再次进入待机。

STM32的待机与唤醒试验

标签:init   节能   唤醒   res   set   靠谱   按键   rtc   oid   

原文地址:https://blog.51cto.com/dawn0919/2396476

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!