当前位置: 首页 > news >正文

HAL库:GPIO唤醒模式 唤醒睡眠模式下的单片机

目录

HAL库:GPIO唤醒模式 唤醒睡眠模式下的单片机

注意事项:

初始化部分:

主函数测试部分

结果如图


HAL库:GPIO唤醒模式 唤醒睡眠模式下的单片机

注意事项:

  • HAL库滴答定时器默认为打开状态,需要关闭后再进入睡眠,否则滴答会唤醒睡眠的单片机。在唤醒后可以再次打开
  • 不明白单片机的低功耗模式,可以看我这篇博客STM32 PWR电源控制 与 低功耗模式 详解_stm32低功耗-CSDN博客
  • 使用唤醒模式需要添加HAL_PWR.c的文件。
  • 单片机进入睡眠模式的指令为HAL_PWR_EnterSLEEPMode(0,PWR_SLEEPENTRY_WFE) 第一个参数是为了移植所用。第二个参数是进入 事件唤醒模式。

初始化部分:

  • 按键为低电平有效。所以为上拉电阻
  • 唤醒模式配置为检测到下降沿 进入唤醒
//唤醒模式初始化
void KEY_Init_Event(void)
{__HAL_RCC_GPIOB_CLK_ENABLE();   //开启GPIOB时钟GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.Mode = GPIO_MODE_EVT_FALLING; //下降沿触发 唤醒  GPIO_InitStructure.Pin = GPIO_PIN_10;GPIO_InitStructure.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOB,&GPIO_InitStructure);//配置PB 10的模式
}

主函数测试部分

#include "stm32f1xx_hal.h"#include "rcc.h"
#include "led.h"
#include "key.h"/*函 数 名:设置PB10 时间模式 唤醒睡眠的stm32*参    数:*返 回 值:*注意事项:*/int main (void)
{HAL_Init();//初始化HAL库RccClock_Init();//配置时钟树72MLED_Init();//LED初始化KEY_Init_Event();while(1){//唤醒后闪灯HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_15);HAL_Delay(500);HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_15);HAL_Delay(500);HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_15);HAL_Delay(500);HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_15);HAL_SuspendTick();  //暂停滴答定时器HAL_PWR_EnterSLEEPMode(0,PWR_SLEEPENTRY_WFE);   //进入睡眠模式HAL_ResumeTick();   //重启滴答定时器}}

结果如图

  • 每次按下唤醒单片机,然后进入while循环 单片机进入睡眠。


http://www.mrgr.cn/news/11862.html

相关文章:

  • Golang | Leetcode Golang题解之第371题两整数之和
  • 算法笔记|Day33动态规划VI
  • 八、DMA直接存储器存取
  • poi word 添加水印
  • ChatGPT 3.5/4.0 新手使用手册
  • 华为 2024 届校园招聘-硬件通⽤/单板开发——第一套(部分题目分享,完整版带答案,共十套)
  • JAVA var类型详解
  • 运维学习————Docker自制镜像并上传至阿里云以及Docker Compose的使用
  • 深入剖析ASP.NET Core中的身份验证与授权:构建安全可靠的Web应用
  • 云计算day33
  • Oracle字符串聚合函数LISTAGG
  • Golang | Leetcode Golang题解之第375题猜数字大小II
  • 鸿蒙内核源码分析(用户态锁篇) | 如何使用快锁Futex(上)
  • 1+X 职业技能等级证书面向哪些人群介绍
  • 深度学习基础(Datawhale X 李宏毅苹果书AI夏令营)
  • Code Llama: Open Foundation Models for Code论文阅读
  • 【C#】【EXCEL】BumblebeeComponentsAnalysisGH_Ex_Ana_CondScale.cs
  • HTML对信息化大屏的像素适应解决方案autofit.js
  • Linux网络:TCP UDP socket
  • vue2.0纯前端预览附件方法汇总