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

单片机,传感器等低功耗管理

**有些客户需求,把设备做成低功耗管理,这样就可以节省电池的电量,也可以增加传感器的使用寿命

HCLKCPU提供时钟,内核执行代码。当CPU不需要继续运行时,可以利用多种低功耗模式,等待某个事件触发

睡眠模式:内核停止,外设如 NVIC ,系统时钟 Systick 仍运行。
停止模式:所有时钟都已停止。 1.8V 内核电源工作。

                         PLL,HISHSE RC振荡器功能禁止。

                         寄存器和SRAM内容保留。

待机模式:1.8V内核电源关闭。

                         只有备份寄存器和待机电路维持供电。

                         寄存器和SRAM内容全部丢失。实现最低功耗

在运行模式下,可以通过下面方式降低功耗:

① 降低系统时钟。

② 关闭APBAHB总线上未被使用的外设时钟

软件代码实现部分:

示例代码

int main(void)
{ 
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  delay_init(168);      //初始化延时函数
  uart_init(115200);		//初始化串口波特率为115200			        
  LCD_Init();           //初始化LCD FSMC接口
  KEY_Init();	 
 POINT_COLOR=RED;	  
 LCD_ShowString(30,40,210,24,24,"WarShip STM32 ^_^"); 
 while(1)
  {
    if(KEY_Scan(0)==KEY0_PRES)
   {
       RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);	//使能PWR外设时钟
       PWR_BackupAccessCmd(ENABLE);//后备区域访问使能
      RTC_ITConfig(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA,DISABLE);//关闭RTC相关中断	       
      RTC_ClearITPendingBit(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA);//清楚RTC相关中断标志位。
     PWR_ClearFlag(PWR_FLAG_WU);//清除Wake-up 标志
     PWR_WakeUpPinCmd(ENABLE);  //使能唤醒管脚功能
      PWR_EnterSTANDBYMode();	  //进入待命(STANDBY)模式 	 
   }
    delay_ms(10);
  }
}

实现同一个引脚PA0引脚(WakeUp引脚),长按3秒进入待机模式,在待机模式下,长按3秒待机唤醒。

其他情况具体使用后添加。。。。


http://www.kler.cn/news/311458.html

相关文章:

  • 模块化编程:构建灵活与高效的系统
  • python简介
  • L67 【哈工大_操作系统】操作系统历史 学习任务
  • spring MVC基础注解汇总
  • js取出一个对象中指定的字段(封装公共方法)
  • Redis 哨兵模式配置教程
  • docker在基础镜像上,比如rockylinux,如何配置yum仓库
  • AD域控服务器
  • Ubuntu22.04关闭631端口的方法
  • Java项目实战II基于Java+Spring Boot+MySQL的酒店客房管理系统(源码+数据库+文档)
  • Spring Controller
  • 如何确保Redis双删的准确性
  • React + Vite 多环境配置
  • 正也科技-辖区与指标管理系统 强化决策支持
  • 计算机网络 8.*结构化布线
  • 电力施工作业安全行为检测图像数据集
  • 【Python常用模块】_cx_Oracle模块详解
  • Docker SDK for Python: Python中操控Docker的利器
  • 【Linux进程控制】进程程序替换
  • Mac 上,终端如何开启 proxy
  • Vue3.0组合式API:使用reactive()、ref()创建响应式代理对象
  • hcia-openEuler V1.0师资题库-试卷3
  • 低代码平台中的数据源设计:构建高效应用的基础
  • 揭开 Vue 3 中大量使用 ref 的隐藏危机
  • 如何使用ssm实现基于WEB的文学网的设计与实现+vue
  • Utgard风格的平铺和Arm FrameBuffer Compression(AFBC)
  • iview Form Input组件按下回车键搜索和禁止触发表单默认事件
  • Rocky Linux 9 中添加或删除某个网卡的静态路由的方法
  • 【JSrpc破解前端加密问题】
  • 【Linux】对称加密和非对称加密的区别