【温酒笔记】电源管理(二)

STM32超低功耗进阶之电源管理库函数(二) 一,电源管理库函数 前面的入门文章对 STM32 的超低功耗的做了使用介绍,当然在使用超低功耗的时候还会考虑 RAM 的数据会不会丢失,什么时候重写 备份寄存器,进入低功耗模式的时候要怎么保持 IO 的状态,前面一章已经对 stm32l4xx_hal_pwr.c 里面的 API 以及使用场景做了介绍,ST 还有另外一个文件教 stm32l4xx_hal_pwr_ex.c 所有带 ex 标识的库函数的意思是 Extended(扩展),所以这篇文章就是对扩展部分的说明。 二,电源管理的 API ST 的 HAL 阅读详情

知识点

STM32L0休眠模式:(3.0V供电)

低速运行190uA/MHz
6μA低功耗运行模式,32kHz运行频率
3.2 μA低功耗睡眠模式,一个计时器工作
0.8 μA 停机模式:实时时钟(RTC)运行,保存上下文,保留RAM内容
0.3 μA 停机模式:无实时时钟运行,保存上下文,保留RAM内容
270nA待机模式:无实时时钟运行,保存后备寄存器

首先介绍几点影响功耗的因素。
1.IO口的状态,不用的IO口设置成模拟输入。
2.时钟,时钟越低功耗越低。
3.外设,禁用不使用的外设。
4.PLL是一个耗电大户,如果做低功耗还是把PLL禁用,直接HSE/HSI/MSI到SYSCLK。
5.内核电压,根据不同的运行速度和VDD电压调节动态调压器,达到速度与功耗的平衡

  • 下面这个函数调节内核电压
#define PWR_REGULATOR_VOLTAGE_SCALE1   PWR_CR_VOS_0
#define PWR_REGULATOR_VOLTAGE_SCALE2   PWR_CR_VOS_1
#define PWR_REGULATOR_VOLTAGE_SCALE3   PWR_CR_VOS
  *            @arg PWR_REGULATOR_VOLTAGE_SCALE1: Regulator voltage output Scale 1 mode,
  *                                                System frequency up to 32 MHz.
  *            @arg PWR_REGULATOR_VOLTAGE_SCALE2: Regulator voltage output Scale 2 mode,
  *                                                System frequency up to 16 MHz.
  *            @arg PWR_REGULATOR_VOLTAGE_SCALE3: Regulator voltage output Scale 3 mode,
  *                                                System frequency up to 4.2 MHz

__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);

进入STOP模式
停止模式基于 Cortex®-M0+ 深度睡眠模式与外设时钟门控
调压器既可以配置为正常模式,也可以配置为低功耗模式。
在停止模式下,VCORE 域中的所有时钟都会停止,
PLL、MSI、HSI16 和 HSE RC 振荡器也被禁止。内部 SRAM 和寄存器内容将保留。
要使停止模式下的功耗最低,内部 Flash 也进入低功耗模式。Flash 处于掉电模式时,
将器件从停止模式唤醒将需要额外的启动延时。
要使停止模式下的功耗最低,
可在进入停止模式前关闭 VREFINT、BOR、PVD 和温度传感器。
退出停止模式后,
可以使用 PWR_CR 寄存器中的 ULP 位通过软件重新打开它们。
在停止模式下,所有 I/O 引脚的状态与运行模式下相同。

配置选择唤醒后的时钟源

/*
  * @brief  Macro to configures the wake up from stop clock.
  * @param  __RCC_STOPWUCLK__ specifies the clock source used after wake up from stop
  *   This parameter can be one of the following values:
  *     @arg @ref RCC_STOP_WAKEUPCLOCK_MSI    MSI selected as system clock source
  *     @arg @ref RCC_STOP_WAKEUPCLOCK_HSI    HSI selected as system clock source
  * 
  */
  __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_MSI);
  • 休眠之前禁止ADC
利用CubeMX和STM32H750VBT6配置ADC监测电压(新手教程) (2)Channel1设置为PWM Generation No Output。(1)Clock Source设置为Internal Clock。板子配置成这样之后可以回去看看(三)之中的部分了。如图:配置IN5和Date Width。首先配置Timers里面的TIM1。 阅读详情

相关推荐

USART配置 STM32cubemx配置USART

目录:1.软件2.程序3.使用STM32CubxMX配置USART4,.介绍程序的实现一、软件:(1)STM32CubeMX(2)KEIL5硬件平台主IC:STM32F412RET6二,见程序:main.c部分程序#include "main.h" #include "stm32f4xx_hal.h" #include "usart.h" #include "gpio.h" #define ...

qq_29986979的博客 1万+

STM32学习笔记1----STM32F429系统时钟

FreeRTOS任务基本知识 1.任务堆栈大小 pxStack = ( StackType_t * ) pvPortMalloc( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ 可以看出 StackType_t 类型的变量为 4 个字节,那么任务的实际堆栈大小就应该是我们所定

qq_44881094的博客 6367

1,STM32HAL库的时钟树配置

本文介绍如何用HAL库配置STM32F407时钟树,使用外部8MHz高速晶振,将系统时钟(SYSCLK)配置为最高频率168MHz,PCLK1配置为最高频率42MHz,PCLK2配置为最高频率84MHz。在sys.c中进行编写sys_stm32_clock_init()函数进行时钟树的初始化。3.2, RCC_ClkInitTypeDef时钟初始化配置句柄。4,编写STM32HAL库的时钟树初始化函数。3,STM32HAL库的时钟树相关结构体。1,STM32HAL库的时钟树相关函数。

LC_8575的博客 1177

【STM32】低功耗相关函数和类型

00. 目录 文章目录00. 目录01. 概述02. 相关类型03. 相关函数04. 结构体封装05. 预留06. 附录07. 声明 01. 概述 很多单片机都有低功耗模式,STM32F4 也不例外。在系统或电源复位以后,微控制器处于运行状态。运行状态下的 HCLK 为 CPU 提供时钟,内核执行程序代码。当 CPU 不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。 在stm32f4xx_pwr

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 1587

STM32开发笔记74: STM32L0低功耗唤醒后的时钟选择

单片机型号:STM32L053R8T6 本文介绍STM32L0系列单片机低功耗唤醒后的时钟选择。 参看已有的低功耗例程,发现都使能了HSI时钟,一致没有深究其中的具体原因,今天把它搞明白了,现记录如下: 先看一下,使能低功耗的函数: void CTarget::EnableLowPower(void) { HAL_PWREx_EnableUltraLowPower(); HAL_PW...

snmplink的博客 3830

01-SA8155P 冷启动强制进入EDL模式

冷启动EDL模式

静虚待令,有物混成 3089

stm32 hal库 RCC初始化函数SystemClock_Config()梳理分析、初步细致学习(一)

首先是时钟就绪标志位的检测,就比如我要PLL作为主时钟的时钟源。那么在开启主时钟之前必须要保证PLL是打开的,软件通过CR寄存器下PLLRDY判断。通过函数if(== RESET)#define1U 5U) 看成 b;就是if(b == 1)= 0u)return 1;

qq_58619066的博客 1万+

图像配准(Image Registration)——深度学习方法

参考:https://www.cnblogs.com/carsonzhu/p/11188574.html

m0_46483236的博客 4万+

【温酒笔记】电源管理-GPIO浮空输入

‌电平波动引发动态漏电流‌浮空输入状态下,IO引脚处于高阻态,其电平易受电磁干扰或寄生电容影响,导致内部MOS管栅极电压在0V至VDD间波动,形成动态充放电路径。这种波动会持续消耗约5-8μA电流‌34。‌内部保护二极管导通路径‌当浮空引脚因干扰产生高于VDD或低于GND的电压时,内部ESD保护二极管导通。例如,引脚电压>VDD时,电流路径为:引脚→VDD→电源→GND,典型漏电流约3-5μA‌68。‌输入缓冲器的静态功耗‌施密特触发器在浮空输入模式下处于激活状态。

Longrun的博客 915

R语言下载包报错?可能是IE浏览器在搞鬼!手把手教你修复(附CRAN镜像选择指南)

本文深入解析了R语言下载包时常见的网络报错问题,特别是Windows系统中因Internet Explorer代理设置导致的连接失败。文章提供了从重置IE配置、排查防火墙到优化CRAN镜像选择的完整解决方案,并附有详细的配置指南和自动化诊断脚本,帮助用户彻底解决R包安装难题。

weixin_29056781的博客 742

告别Root!用Python脚本一键解密Android微信EnMicroMsg.db数据库(附完整源码)

本文详细介绍了如何在非Root环境下使用Python脚本一键解密Android微信EnMicroMsg.db数据库。通过ADB调试接口和SQLCipher技术,实现自动化提取和解密微信聊天记录数据库,无需Root权限,适合数据分析师和普通用户安全备份数据。

weixin_29266007的博客 329

【温酒笔记】电源管理-低功耗模式(一)

参考资料:野火电子F103文档参考资料:STM32F1XX数据手册(官方)

Longrun的博客 706

Python控制Keysight DAQ973A/DAQ970A实现数据采集

本文介绍了如何通过编程实现Keysight DAQ973A数据采集系统的自动化温度测量。首先,通过GPIB线将PC与仪器连接,并使用热电耦测量线连接被测装置。接着,通过查阅Keysight官网提供的编程手册,获取了实现温度测量所需的SCPI指令。然后,使用pyvisa库编写代码,与仪器进行交互,发送SCPI指令并读取测量结果。代码中整合了配置和查询指令,并将测量结果转换为浮点数格式。最后,将整个流程封装为命令行工具,用户可以通过配置文件设置参数,并执行自动化测试,测试结果将保存为CSV文件。整个过程实现了温

xgh1951的博客 1887

stm32的低功耗模式

本文以smt32L4R5ZIT6单片机为例,编写代码。本文只讲代码,不说废话。 单片机进入低功耗前,都应该关闭中断。同时在低功耗前加上如下代码功耗更低 __HAL_RCC_PWR_CLK_ENABLE();//使能电源时钟 HAL_PWR_EnableBkUpAccess();//使能LSE/RTC控制的备份域 LSE_OFF_Config();//关闭LSE时钟,确保RTC关闭 HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAG

CoolBreeze的博客 4779

Trae+雪球MCP,化身专业的股票分析师(玩转100个MCP系列第二弹)

大家好呀,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧、经验以及前沿资讯,有兴趣的可以关注我的公众号,一起学习,共同进步。第二弹,使用Trae+雪球MCP,获取股票实时行情,分析股票走向等,写代码间隙看看股票价格,研究研究行情,哈哈。真的很不错呀,最关键的是,足够隐蔽,同事以为你在写代码,实际你在浏览股票行情,哈哈,感兴趣的可以试一下哦。说实话,沧州明珠这只股我算是砸手里了,不过还好买的不多,哈哈。

cpp加油站的专栏 518

智能运营模型的建设与运用实践

一项运营活动的全流程,主要包含客群挖掘与筛选、产品与权益选择、触点与活动选择、运营策略调优等关键环节,涉及客群管理、活动管理、权益管理、触达管理、智能调控等系统支撑需求,如今工商银行已开展与其相对应的推荐模型、分析模型等的研发与实践。自2023年9月该模型被知客运营平台吸收并上线以来,已累计有远程银行中心、吉林分行、重庆分行等30余家分行或机构使用,赋能融e借、积存金、结售汇、基金、理财、存款等12种场景,产生营销客户清单达千万人次,有力促进了保守型理财、天天盈、添益快线、寿险等产品的销售。

银行信息系统应用架构详解 849

【STM32】在使用STM32Cube.IDE时更改时钟频率后代码跳进异常中断

STM32Cube.IDE配置更改时钟树时,若将主频改到40M以上,代码会卡在 if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE4) != HAL_OK) { Error_Handler(); }

Daears的博客 1579

反爬虫:POST 请求参数中 Sign 的加密机制详解,并设计带 Sign 校验的网站

本文介绍了API请求中sign签名的生成原理及实现方法。sign是通过对请求参数加密生成的一串字符串,用于验证请求合法性,防止参数篡改、重放攻击和伪造请求。其生成步骤包括参数排序、拼接字符串、加盐和哈希加密。文章还演示了如何在FastAPI后端实现带sign验证的新闻网站,包括参数校验、时间戳验证和签名比对等安全措施,有效提升API安全性,增加爬虫逆向难度。

数据知道的博客 4075

[HAL] STM32F407ZG HAL库配置过程 时钟系统

硬件设计 时钟源构成 STM32中有5个最重要的时钟源,分别为HSI,HSE,LSI,LSE和PLL。其中PLL实际分为两个时钟源,分别为主PLL和专用PLL。五种时钟源有一下两种分类方式: 分类方法\类别 高速时钟源/外部时钟源 低速时钟源/内部时钟源 时钟频率 HSI HSE PLL LSI LSE 来源 HSE LSE HSI LSI PLL 时钟源详细信息 名称 频率 功能 LSI低速内部时钟 32kHz左右 独立看门狗、自动唤醒单元 LSE低速外部时钟

Liquicitizen的博客 3661

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

关于STM32H745xI双核芯片的SMPS和LDO配置,导致芯片无法复位,无法下载程序

关于STM32H745xI双核芯片的SMPS和LDO配置 最近在项目中遇到程序上电能跑,然后软件复位,或者按键复位的时候会跑不起来,无法复位,而且不能下载程序。 一开始怀疑是Boot0(双核的只有BOOT0,没有BOOT1)引脚虚焊,后来做了一个按钮,用来上拉下拉,由于不能下载程序,那么只能上拉BOOT0,跳到默认的地址,这个是ST自带的程序,是可以下载的。 上拉是可以下载了,下拉跑自己的程序的时候还是会不能复位。 后来又怀疑是代码配置的问题,因为程序是H745ZIT6的代码,引脚是144的,H745IIT

qq_34985000的博客 9505

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

如何实现使用HSE和PLL配置STM32G474时钟树

再好的库都需要配置时钟树,不管是标准库,还是HAL库,如果工程模板没有配置好RCC时钟,还是需要我们自己动手配置,即使工程模板配置好了,也不一定是我们需要的时钟。特别是需要PWM输出控制时,如数字电源,在STM32G474单片机中,配置时钟树就显得尤其重要。

weixin_42550185的博客 1783

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

STM32L0系列单片机低功耗(STOP)使用+RTC唤醒+LPUART(DMA方式)唤醒+LPTIM唤醒

文章目录STM32L0低功耗应用1.睡眠模式2.低功耗运行模式3.低功耗睡眠模式4.带RTC的停止模式5.不带RTC的停止模式6.带RTC待机模式7.不带RTC待机模式留更设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 STM32L0低功耗应用 S...

qq_35930480的博客 1万+

STM32L0xxHal库SystemClock_Config函数

STM32L051c8t6 使用内部HSI时钟初始化。   RCC_ClkInitTypeDef RCC_ClkInitStruct;   //结构体初始化 RCC_OscInitTypeDef RCC_OscInitStruct; //结构体初始化   __HAL_RCC_PWR_CLK_ENABLE();  //使能电源控制时钟      __HAL_PWR_VOLTAGESCA...

zzYuanWai的博客 1万+

操作系统 -分析 main 函数代码

🔭STM32CubeMx 生成 main函数代码分析📡。

如图所示 1209

学习STM32的电源管理

低功耗模式是STM32中广泛使用的一种功能,可以显著降低系统的功耗。在这些模式下,CPU和多数外设都被关闭,只有必要的外设继续运行,以保持系统的最基本功能。电源管理对于系统的功耗和电池寿命具有重要影响,因此在实际应用中需要综合考虑功耗优化和性能需求,以达到最佳的电源管理效果。在STM32微控制器中,STMicroelectronics提供了一系列的电源管理功能,方便开发者控制和优化系统的电源消耗。STM32提供了一系列的电源监测和管理功能,可以帮助开发者更好地管理系统的电源消耗,以及对电源状态进行监测。

qq_67153941的博客 607

stm32G474HAL库学习(不使用stm32CUBEMX)2

今天这篇文章用于说明一下上一篇文章留下的问题,以及学习一下外部中断的HAL库写法。

m0_62837915的博客 1164
上一篇: 【勘误笔记】J-LINK连接不上芯片问题
下一篇: 【随手笔记】2.4G射频扫盲(一)
Long-Run
博客等级 码龄3年 4600粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值