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

学习STM32第二十天

低功耗编程

一、修改主频

STM32F4xx系列主频为168MHz,当板载8MHz晶振时,系统时钟HCLK满足公式 H C L K = H S E × P L L N P L L M × P L L P HCLK = \frac{HSE \times PLLN}{PLLM \times PLLP} HCLK=PLLM×PLLPHSE×PLLN,在文件stm32f4xx.h中可修改HSE
HSE
在文件system_stm32f4xx.c中可修改锁相环参数

PLL
适当降低主频可降低开发板功耗

二、睡眠模式

在主函数的while循环中加上睡眠模式函数__WFI(),代码如下

while(1){if(Serial_GetRxFlag() == 1){RxData = Serial_GetRxData();Serial_SendOneByte(RxData);OLED_ShowHexNum(1, 8, RxData, 2);}OLED_ShowString(2, 1, "Running");Delay_ms(500);OLED_ShowString(2, 1, "       ");Delay_ms(100);__WFI();//睡眠模式,但是外设还是处于工作状态}

可通过中断唤醒系统,完成中断任务之后继续进入睡眠模式

三、停机模式

停机模式下,CPU和外设都没有时钟,而外部中断不需要时钟因此只有外部中断可以唤醒,通过stm32f4xx_pwr.c中的函数PWR_EnterSTOPMode()进入停机模式。

int main(void)
{OLED_Init();CountSensor_Init();RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);OLED_ShowString(1, 1, "Count:");while (1){OLED_ShowNum(1, 7, CountSensor_Get(), 5);OLED_ShowString(2, 1, "Running");Delay_ms(100);OLED_ShowString(2, 1, "       ");Delay_ms(100);//第一个参数是指定电压调节器在停止模式里的状态//第二个参数是选择进入停止模式的指令PWR_EnterSTOPMode(PWR_Regulator_ON, PWR_STOPEntry_WFI);SystemInit();//重新启动HSE}
}

当一个中断唤醒导致退出停机模式时,HSI被选为系统时钟,需要注意。

四、待机模式

待机模式唤醒后,程序是从头开始执行的,也就是PWR_EnterSTANDBYMode();之后的语句不会被执行,而是直接从头开始运行。在进入待机模式之前,都要尽可能把外挂的模块都关掉,以达到省电目的。

int main(void)
{OLED_Init();MyRTC_Init();RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);OLED_ShowString(1, 1, "CNT :");OLED_ShowString(2, 1, "ALR :");OLED_ShowString(3, 1, "ALRF:");PWR_WakeUpPinCmd(ENABLE);//测试WKUP引脚上升沿唤醒功能uint32_t Alarm = RTC_GetCounter() + 10;		//设定闹钟RTC_SetAlarm(Alarm);						//闹钟寄存器是“只写”OLED_ShowNum(2, 6, Alarm, 10);while (1){OLED_ShowNum(1, 6, RTC_GetCounter(), 10);OLED_ShowNum(3, 6, RTC_GetFlagStatus(RTC_FLAG_ALR), 1);//查看闹钟标志位OLED_ShowString(4, 1, "Running");Delay_ms(100);OLED_ShowString(4, 1, "       ");Delay_ms(100);OLED_ShowString(4, 9, "STANDBY");Delay_ms(1000);OLED_ShowString(4, 9, "       ");Delay_ms(100);OLED_Clear();//关闭OLEDPWR_EnterSTANDBYMode();//进入待机模式后通过闹钟事件唤醒}
}

相关文章:

学习STM32第二十天

低功耗编程 一、修改主频 STM32F4xx系列主频为168MHz,当板载8MHz晶振时,系统时钟HCLK满足公式 H C L K H S E P L L N P L L M P L L P HCLK \frac{HSE \times PLLN}{PLLM \times PLLP} HCLKPLLMPLLPHSEPLLN​,在文件stm32f4xx.h中可修…...

智能BI(后端)-- 系统异步化

文章目录 系统问题分析什么是异步化?业务流程分析标准异步化的业务流程系统业务流程 线程池为什么需要线程池?线程池两种实现方式线程池的参数线程池的开发 项目异步化改造 系统问题分析 问题场景:调用的服务能力有限,或者接口的…...

AI绘画Stable Diffusion 插件篇:智能标签提示词插件sd-danbooru-tags-upsampler

大家好,我是向阳。 关于智能标签提示词插件,在很早之前就介绍过很多款了,今天再给大家介绍一款智能标签提示词插件sd-danbooru-tags-upsampler。该智能提示词插件是今年2月23号才发布的第一版V0.1.0,算是比较新的智能提示词插件。…...

Android OpenMAX(六)OMXStore

在前面两节的学习中我们知道了OMX Core是用来管理(查询/创建/销毁)Android平台上的硬件编解码组件的。这一节我们再向上一层,Android平台除了提供有硬件编解码组件支持,还内置了一些软件编解码组件,为了统一管理所有(软/硬)编解码组件,Android在OMX Core之上又抽象了一…...

Ubuntu下halcon软件的下载安装

由于工作需求,点云配准需要使用halcon进行实现,并且将该功能放入QT界面中 1.下载halcon 进入halcon官网进行下载 官网链接:https://www.mvtec.com/products/halcon/ 注意:要注册登陆之后才能进行下载 接着点击Downloads->H…...

『ZJUBCA Collaboration』WTF Academy 赞助支持

非常荣幸宣布,浙江大学区块链协会收到WTF Academy的赞助与支持,未来将共同开展更多深度合作。 WTF Academy是开发者的Web3开源大学,旨在通过开源教育让100,000名开发者进入到Web3。截止目前,WTF开源教程在GitHub收获超15,000 ⭐&a…...

Python开源工具库使用之运动姿势追踪库mediapipe

文章目录 前言一、姿势估计1.1 姿态关键点1.2 旧版 solution API1.3 新版 solution API1.4 俯卧撑计数 二、手部追踪2.1 手部姿态2.2 API 使用2.3 识别手势含义 参考 前言 Mediapipe 是谷歌出品的一种开源框架,旨在为开发者提供一种简单而强大的工具,用…...

【Android Studio】开启真机调试

1 打开手机的开发者模式 各种款式的手机进入开发者模式的情况不同,但大致是在 【关于手机】中多次点击系统版本即可进入。这里以小米8为例,记录下流程。 1.1 进入手机开发者模式 【设置】->【我的设备】->【全部参数】->【MIUI版本】连续点击3…...

CMakeLists.txt语法规则:部分常用命令说明四

一. 简介 前面几篇文章学习了CMakeLists.txt语法中前面几篇文章学习了CMakeLists.txt语法中部分常用命令。文章如下: CMakeLists.txt语法规则:部分常用命令说明一-CSDN博客 CMakeLists.txt语法规则:部分常用命令说明二-CSDN博客 CMakeLi…...

学习前端第三十二天(Rest 参数与 Spread 语法,变量作用域,闭包)

一、Rest 参数与 Spread 语法 1.rest参数 ...变量名:收集剩余的参数并存进指定数组中,需要放到最后; 2.arguments变量 // arguments,以参数在参数列表中的索引作为键,存储所有参数,以类数组对象的形式输出所有函数参数 // 箭头…...

mysql从入门到起飞+面试基础题

mysql基础 MySQL基础 企业面试题1 代码 select m.id,m.num from ( select t.id as id,count(1) num from ( select ra.requester_id as id from RequestAccepted raunion all select ra.accepter_id as id from RequestAccepted ra ) t group by t.id ) m group by id ord…...

设计模式:命令模式

文章目录 一、什么是命令模式二、命令模式结构三、命令模式实现步骤四、命令模式应用场景 一、什么是命令模式 它允许将请求封装为对象,一个请求对应于一个命令,将发出命令的责任和执行命令的责任分割开。每一个命令都是一个操作:请求的一方…...

setinterval和settimeout区别在于

setinterval和settimeout区别在于 执行次数和执行频率 setInterval和setTimeout的主要区别在于执行次数和执行频率。以下是详细介绍:12 setTimeout是一次性的定时器,它在设定的延迟时间之后执行一次函数,然后停止。setInterval是重复性的定…...

shell_结束进程脚本

结束进程的shell脚本如下: #!/bin/bash# kill all process ps aux|grep "local" | grep -v grep | awk {print $2} | while read line; do kill -9 $line; done 解析: ps aux 命令常用于查看当前系统中运行的进程,以及它们所占用…...

GDPU unity游戏开发 碰撞器与触发器

砰砰叫,谁动了她的奶酪让你的小鹿乱撞了。基于此,亦即碰撞与触发的过程。 碰撞器与触发器的区别 通俗点讲,碰撞器检测碰撞,触发器检测触发,讲了跟没讲似的。碰撞器是用来检测碰撞事件的,在unity中&#xff…...

IP地址定位技术在网络安全中的作用

在当今数字化时代,网络安全已经成为企业、政府和个人面临的重要挑战之一。随着互联网的普及和网络攻击的增加,保护个人隐私和防止网络犯罪变得尤为重要。在这一背景下,IP地址定位技术作为网络安全的重要组成部分之一,发挥着关键作…...

R语言中,查看经安装的包,查看已经加载的包,查看特定包是否已经安装,安装包,更新包,卸载包

创建于:2024.5.4 R语言中,查看经安装的包,查看已经加载的包,查看特定包是否已经安装,安装包,更新包,卸载包 文章目录 1. 查看经安装的包2. 查看已经加载的包3. 查看特定包是否已经安装4. 安装包…...

spring boot3单模块项目工程搭建-下(个人开发模板)

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 目录 写在前面 上文衔接 常用依赖介绍以及整合 web组件 测试组件 样板代码生成 数据库连接器 常用工具包 面向切面编程 ORM框架 数据连接池 接口测试、文档导出 缓存中间件 参数校…...

精准清理 MongoDB 数据:删除集合的正确姿势

在 MongoDB 数据库管理中,数据清理是维护数据库性能和保持数据一致性的关键步骤之一。而删除集合是实现数据清理的重要手段之一。在这个信息爆炸的时代,了解如何正确地执行集合删除操作至关重要。本文将深入探讨 MongoDB 中删除集合的常用方法、最佳实践…...

java 执行修改语句

你可以使用Java中的JDBC(Java Database Connectivity)来执行修改语句。以下是一个示例: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;public class Main {public…...

Fluent | 动网格技术解析与应用场景

1. 动网格技术到底是什么? 第一次接触动网格这个概念时,我也是一头雾水。简单来说,动网格就是让计算流体力学(CFD)模拟中的网格能够"动起来"的技术。想象一下你在用Fluent模拟一个活塞在气缸里的运动&#x…...

KeyPass完全指南:掌握开源离线密码管理器的终极教程

KeyPass完全指南:掌握开源离线密码管理器的终极教程 【免费下载链接】KeyPass KeyPass: Open-source & offline password manager. Store, manage, take control securely. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyPass 在当今数字时代&#xf…...

颗粒结构:基础但容易被忽视

在COMSOL中二氧化碳电化学还原过程中不同催化剂结构对离子传输的影响的模拟分析搞电化学的小伙伴们都知道,催化剂长得像撒了把芝麻似的颗粒结构最省事。但在COMSOL里建模时千万别直接右键画球体——试试这个骚操作:model.geom("geom1").featur…...

效率提升秘籍:用快马平台快速生成魔鬼面具试戴应用代码骨架

效率提升秘籍:用快马平台快速生成魔鬼面具试戴应用代码骨架 最近在做一个有趣的个人项目——魔鬼面具在线试戴应用。作为一个前端开发者,我深知从零开始搭建这种交互式应用需要花费不少时间在基础框架上。幸运的是,我发现了InsCode(快马)平台…...

简单三步:用Qwen3语义雷达,为你的网站添加智能搜索功能

简单三步:用Qwen3语义雷达,为你的网站添加智能搜索功能 1. 为什么需要语义搜索? 传统的网站搜索功能大多基于关键词匹配,这种技术存在明显局限。当用户搜索"如何解决电脑卡顿"时,如果知识库中只有"提…...

避坑指南:华三vFW2000在ESXI虚拟机中的常见安装错误与解决方案

华三vFW2000虚拟防火墙在ESXI环境部署的深度排错手册 当你在深夜的机房盯着ESXI控制台里反复报错的vFW2000安装界面时,那种焦灼感我深有体会。去年某金融客户数据中心迁移项目中,我们团队连续遭遇了镜像校验失败、存储空间分配异常、虚拟网卡绑定错误等…...

Git-RSCLIP快速部署指南:一键启动,轻松搭建你的遥感图像搜索引擎

Git-RSCLIP快速部署指南:一键启动,轻松搭建你的遥感图像搜索引擎 1. 引言:遥感图像搜索的新利器 在遥感图像分析领域,我们经常面临这样的挑战:如何从海量卫星和航拍图像中快速找到特定目标?传统方法需要人…...

为什么XianyuAutoAgent的日志监控是AI客服稳定运行的守护神

为什么XianyuAutoAgent的日志监控是AI客服稳定运行的守护神 【免费下载链接】XianyuAutoAgent 智能闲鱼客服机器人系统:专为闲鱼平台打造的AI值守解决方案,实现闲鱼平台724小时自动化值守,支持多专家协同决策、智能议价和上下文感知对话。 …...

文墨共鸣大模型智能体(Agent)开发入门:构建自动化任务执行系统

文墨共鸣大模型智能体(Agent)开发入门:构建自动化任务执行系统 你有没有想过,让AI不仅能回答问题,还能像人一样思考、规划,并主动使用工具去完成任务?比如,你告诉它“帮我查一下北京…...

零基础部署Ostrakon-VL-8B:餐饮零售专用AI,看图就能做巡检

零基础部署Ostrakon-VL-8B:餐饮零售专用AI,看图就能做巡检 1. 餐饮零售行业的AI巡检革命 想象一下这样的场景:你是一家连锁餐饮企业的区域经理,负责管理20家门店的日常运营。每周,你需要花费大量时间亲自走访每家门店…...