STM32的待机与按键(闹钟)唤醒试验

因为要节能,这个星期折腾待机与唤醒,首先是待机与按键的唤醒,下载和看了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秒后再次进入待机。
因为上面已经初始化了闹钟,那么加上响应闹钟的回调函数,系统也会在到达闹钟指定时间自动启动,然后再待机。
//回调函数
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
{
EXTI0_1_IRQHandler();
}

分享名称:STM32的待机与按键(闹钟)唤醒试验
转载注明:https://www.cdcxhl.com/article34/gsgdpe.html

成都网站建设公司_创新互联,为您提供定制网站外贸网站建设企业网站制作网页设计公司软件开发网站排名

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站