【STM32单片机】#14 PWR电源控制
主要参考学习资料:
B站@江协科技
STM32入门教程-2023版 细致讲解 中文字幕
开发资料下载链接:https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwd=dspb
单片机套装:STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协
目录
- PWR简介
- 电源框图
- 电压监测(了解)
- 上电复位和掉电复位
- 可编程电压监测器
- 低功耗模式
- 模式选择
- 睡眠模式
- 停机模式
- 待机模式
- 函数详解
- PWR_DeInit函数
- PWR_PVDCmd函数
- PWR_PVDLevelConfig函数
- PWR_WakeUpPinCmd函数
- PWR_EnterSTOPMode函数
- PWR_EnterSTANDBYMode函数
- 标志位函数
- 实验30 修改主频
- 接线图
- system_stm32f10x文件
- 主程序
- 实验31 睡眠模式+串口发送+接收
- 接线图
- 主程序
- 实验32 停机模式+对射式红外传感器计次
- 接线图
- 主程序
- 实验33 待机模式+实时时钟
- 接线图
- 主程序
PWR简介
- PWR(Power Control)电源控制
- PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能。
- 可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阈值以下或上升到PVD阈值之上时,PVD会触发中断,用于执行紧急关闭任务(非本节重点)。
- 低功耗模式包括睡眠模式(Sleep)、停机模式(Stop)和待机模式(Standby),可在系统空闲时降低STM32的功耗,延长设备使用时间。
- 主频和电流消耗大致呈正比,降低主频也能显著降低功耗。
电源框图
上图为STM32供电方案,可分为模拟部分供电(VDDA)、数字部分供电(VDD+1.8V)和后备供电。各供电区域负责的设备已列出。
VDDA供电区域主要负责模拟部分的供电,供电正极为VDDA,负极为VSSA。其中AD转换器还有参考电压供电引脚VREF+和VREF-,在引脚多的芯片型号会单独引出,而在F103C8T6中已经在内部分别接到了VDDA和VSSA。
中间部分分为VDD供电区域和1.8V供电区域,VDD经电压调节器降压到1.8V提供给1.8V供电区域。后备供电区域中,低电压检测器控制开关,在VDD有电时由VDD供电,VDD没电时由VBAT供电。
电压监测(了解)
上电复位和掉电复位
当VDD或VDDA电压过低时,STM32内部电路直接产生复位。电压小于下限PDR时复位,大于上限POR时解除复位,中间有40mV的迟滞电压防抖,复位信号Reset低电平有效。POR、PDR和复位滞后时间均可在芯片数据手册查询。
可编程电压监测器
可编程电压监测器的工作流程与上电/掉电复位类似,但阈值电压可以手动调节,调节范围可在芯片数据手册查询,一般高于上电/掉电复位电压。PVD输出在电压过低时为1,电压正常时为0,可在上升/下降沿申请外部中断提醒程序进行适当处理。
低功耗模式
上表对三种低功耗模式进行了详细的对比。其中第二列为进入对应模式所需的配置,第三列为进入对应模式后的唤醒方法,后三列为进入对应模式后关闭的电路(电压调节器相当于1.8V供电区域的电源)。三种模式从上到下,关闭的电路越来越多,也越来越省电,越来越难唤醒。对于具体的省电效果,正常模式和睡眠模式电流消耗(数量级)均在10mA,停机模式为10 μ \mu μA,待机模式为1 μ \mu μA。
模式选择
执行WFI(Wait For Interrupt)或WFE(Wait For Event)指令后,STM32进入低功耗模式。在触发低功耗模式之前,配置寄存器进行模式选择的方式如下图所示,其中寄存器的每个位已由库函数封装好,无需自行配置。
睡眠模式
- 执行完WFI/WFE指令后,STM32进入睡眠模式,程序暂停运行,唤醒后程序从暂停的地方继续运行。
- SLEEPONEXIT位决定STM32执行完WFI或WFE后,是立刻进入睡眠,还是等STM32从最低优先级的中断处理程序中退出时进入睡眠。
- 在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态。
- WFI指令进入睡眠模式,可被任意一个NVIC响应的中断唤醒。
- WFE指令进入睡眠模式,可被唤醒事件唤醒。
停机模式
- 执行完WFI/WFE指令后,STM32进入停机模式,程序暂停运行,唤醒后程序从暂停的地方继续运行。
- 1.8V供电区域的所有时钟都被停止,PLL、HSI和HSE被禁止,SRAM和寄存器内容被保留下来。
- 在停机模式下,所有的I/O引脚都保持它们在运行模式时的状态。
- 当一个中断或唤醒事件导致退出停机模式时,HSI被选为系统时钟,因此唤醒后需重新启动HSE配置主频为72MHz。
- 当电压调节器处于低功耗模式下,系统从停机模式退出时,会有一段额外的启动延时。
- WFI指令进入停机模式,可被任意一个EXTI中断唤醒。
- WFE指令进入停机模式,可被任意一个EXTI事件唤醒。
待机模式
- 执行完WFI/WFE指令后,STM32进入待机模式,唤醒后程序从头开始运行。
- 整个1.8V供电区域被断电,PLL、HSI和HSE也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电。
- 在待机模式下,所有的I/O引脚变为高阻态(浮空输入)。
- WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位退出待机模式。
函数详解
PWR_DeInit函数
简介:恢复缺省配置。
参数:void
PWR_PVDCmd函数
简介:使能可编程电压监测器。
参数:使能/失能
PWR_PVDLevelConfig函数
简介:配置PVD阈值。
参数:阈值
PWR_PVDLevel_2V2/.../9(2.2~2.9V)
PWR_WakeUpPinCmd函数
简介:使能WKUP引脚(PA0),配合待机模式的WKUP上升沿唤醒。
参数:使能/失能
PWR_EnterSTOPMode函数
简介:进入停机模式。
参数一:电压调节器状态
PWR_Regulator_ON(开启)
PWR_Regulator_LowPower(低功耗)
参数二:唤醒方式
PWR_STOPEntry_WFI/WFE(中断/事件)
PWR_EnterSTANDBYMode函数
简介:进入待机模式。
参数:void
标志位函数
PWR_GetFlagStatus函数
PWR_ClearFlag函数
参数:PWR标志位
PWR_FLAG_WU/SB/PWDO(唤醒/待机/电压监测器输出)
实验30 修改主频
接线图
system_stm32f10x文件
system文件提供了两个外部可调用的函数和一个外部可调用的变量:
- SystemInit函数:配置时钟树,复位后在启动文件中自动调用。
- SystemCoreClock变量:主频频率。
- SystemCoreClockUpdate函数:更新主频频率。
源文件system_stm32f10x.c中如下部分可更改主频的宏定义,解除对应的注释即可选择想要的系统主频。其中else之前的部分为VL超值系列可选主频。当前主频为72MHz。
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE HSE_VALUE */#define SYSCLK_FREQ_24MHz 24000000
#else
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
/* #define SYSCLK_FREQ_24MHz 24000000 */
/* #define SYSCLK_FREQ_36MHz 36000000 */
/* #define SYSCLK_FREQ_48MHz 48000000 */
/* #define SYSCLK_FREQ_56MHz 56000000 */
#define SYSCLK_FREQ_72MHz 72000000
#endif
若文件为只读状态,可以在文件资源管理器中右键对应文件更改属性,取消勾选只读。
SystemInit()首先启动HSI并恢复缺省配置,随后调用SetSysClock()函数会根据不同的宏定义执行相应的SetSysClockToxx()函数完成相应的时钟配置。
主程序
以下代码显示主频,并以72MHz下的1s为周期闪烁Running字符串。
#include "stm32f10x.h"
#include "Delay.h"
#include "OLED.h"int main(void)
{OLED_Init();OLED_ShowString(1, 1, "SYSCLK:");OLED_ShowNum(1, 8, SystemCoreClock, 8);while(1){OLED_ShowString(2, 1, "Running");Delay_ms(500);OLED_ShowString(2, 1, " ");Delay_ms(500);}
}
此时Running以现实的1s为周期闪烁。
现通过宏定义修改主频为36MHz:
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE HSE_VALUE */#define SYSCLK_FREQ_24MHz 24000000
#else
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
/* #define SYSCLK_FREQ_24MHz 24000000 */
#define SYSCLK_FREQ_36MHz 36000000
/* #define SYSCLK_FREQ_48MHz 48000000 */
/* #define SYSCLK_FREQ_56MHz 56000000 */
/* #define SYSCLK_FREQ_72MHz 72000000 */
#endif
此时Running闪烁周期延长一倍。
由于修改主频会要求很多涉及精准计时的计算做好匹配工作,一般不建议采用。
实验31 睡眠模式+串口发送+接收
接线图
主程序
在实验21 串口发送+接收的基础上修改。
#include "stm32f10x.h"
#include "Delay.h"
#include "OLED.h"
#include "Serial.h"uint8_t RxData;int main(void)
{OLED_Init();Serial_Init();OLED_ShowString(1, 1, "RxDara:");while(1){if (Serial_GetRxFlag()){RxData = Serial_GetRxData();Serial_SendByte(RxData);OLED_ShowHexNum(1, 8, RxData, 2);}//监测低功耗状态OLED_ShowString(2, 1, "Running");Delay_ms(100);OLED_ShowString(2, 1, " ");Delay_ms(100);//默认配置开启睡眠模式__WFI();}
}
此时只有当我们向串口发送数据时,Running才会闪烁一次,并回传一次数据。
程序运行时,第一次循环即进入睡眠状态,程序停止在WFI指令,CPU睡眠,但各个外设例如USART仍处于工作状态。USART外设在收到数据时产生中断唤醒CPU,程序在暂停的地方继续运行,先进入中断服务函数,再回到主循环执行一轮循环进入下一次睡眠,如此循环往复。
实验32 停机模式+对射式红外传感器计次
接线图
主程序
在实验6 对射式红外传感器计次的基础上修改。
原驱动程序中博主采用了延时100ms消抖,经实测中断处理时间过长会导致唤醒失败,因此将中断服务函数修改如下:
//中断函数名称在启动文件startup_stm32f10x_md.s中规定
void EXTI15_10_IRQHandler(void)
{//检查中断挂起标志位if(EXTI_GetITStatus(EXTI_Line14) == SET){//再次判断引脚电平if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14) == 0){CountSensor_Count ++;}EXTI_ClearITPendingBit(EXTI_Line14);}
}
主程序修改如下:
#include "stm32f10x.h"
#include "Delay.h"
#include "OLED.h"
#include "CountSensor.h"int main(void)
{OLED_Init();CountSensor_Init();//开启PWR时钟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);}
}
此时每遮挡一次对射式红外传感器,计数加一,Running闪烁一次。有时闪烁两次是因为信号抖动导致遮挡和移开均产生中断信号。
除此之外,复位后Running第一次闪烁时间短暂,后续遮挡Running闪烁变慢,这是由于前文介绍的停机模式唤醒后HSI被选为系统时钟,只需在进入停机模式之后加上 SystemInit(); \texttt{SystemInit();} SystemInit();重新配置时钟为HSE即可。
实验33 待机模式+实时时钟
接线图
主程序
在实验29 实时时钟的基础上修改。
#include "stm32f10x.h"
#include "Delay.h"
#include "OLED.h"
#include "MyRTC.h"int main(void)
{OLED_Init();MyRTC_Init();//开启PWR时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//更改显示布局//计数值OLED_ShowString(1, 1, "CNT :");//闹钟值OLED_ShowString(2, 1, "ALR :");//闹钟标志位OLED_ShowString(3, 1, "ALRF:");//设置闹钟值为复位10秒后//闹钟寄存器只写不读,先定义变量存储闹钟值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_Clear();PWR_EnterSTANDBYMode();}
}
待机模式唤醒后程序从头开始运行,因此该程序现象为复位后OLED闪烁一次,十秒之后触发闹钟事件再次闪烁,往后每隔十秒闪烁一次。
在while循环之前加上 PWR_WakeUpPinCmd(ENABLE); \texttt{PWR\_WakeUpPinCmd(ENABLE);} PWR_WakeUpPinCmd(ENABLE);可实现WKUP引脚(PA0)唤醒,此时每次将该引脚用跳线接到高电平即可观察到OLED闪烁。
相关文章:
【STM32单片机】#14 PWR电源控制
主要参考学习资料: B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接:https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装:STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 目录 PWR…...
FastComposer论文问题与解决
在FastComposer中,跨注意力定位监督(Cross-Attention Localization Supervision) 的实现是通过以下步骤完成的,核心思想是利用分割掩码约束扩散模型中跨注意力图的分布,确保每个主体的特征仅影响图像中对应的区域。具体…...
51单片机同一个timer 作为定时器和波特率发生器么?
在51单片机中,同一个Timer(定时器)不能同时作为普通定时器和波特率发生器。这是因为这两种功能都需要对Timer的寄存器进行配置和操作,而它们的配置要求是冲突的。具体来说: 1. 普通定时器功能 配置要求:需…...
爱情的本质是什么--deepseek
爱情的本质是一个跨越生物学、心理学、哲学和社会学的复杂命题。不同学科视角下,爱情呈现出多层次的真相,但核心可以归结为: “爱情是进化塑造的生存策略、神经化学的短暂狂欢,以及人类对抗存在孤独的精神创造。” 以下从四个维…...
Leetcode 刷题记录 07 —— 链表
本系列为笔者的 Leetcode 刷题记录,顺序为 Hot 100 题官方顺序,根据标签命名,记录笔者总结的做题思路,附部分代码解释和疑问解答。 01 相交链表 /*** Definition for singly-linked list.* struct ListNode {* int val;* …...
Android View#post()源码分析
文章目录 Android View#post()源码分析概述onCreate和onResume不能获取View的宽高post可以获取View的宽高总结 Android View#post()源码分析 概述 在 Activity 中,在 onCreate() 和 onResume() 中是无法获取 View 的宽高,可以通过 View#post() 获取 Vi…...
dubbo限流
单机限流 限流过滤器 package com.doudou.filter;import org.apache.dubbo.common.URL; import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.extension.Activate; import org.apache.dubbo.rpc.*;import java.util.concurrent.Concu…...
IBM BAW(原BPM升级版)使用教程:基本概念
本部分为“IBM BAW(原BPM升级版)使用教程系列”内容的补充。 一、IBM BAW中的流程概念 在IBM Business Automation Workflow(BAW)中,流程定义是流程设计的核心组成部分,它涵盖了流程的结构、任务、数据流…...
1. 视频基础知识
1. 图像基础概念 像素:像素是一个图片的基本单位,pix是英语单词picture,加上英语单词“元素element”,就得到了pixel,简称px。所以“像素”有“图像元素”之意。分辨率:指的是图像的大小或者尺寸。比如 19…...
docker + K3S + Jenkins + Harbor自动化部署
最近公司在研究自动化部署的一套流程,下面记录一下配置流程 需要提前准备好Jenkins Harbor Git(其他管理工具也可以) 我这里的打包编译流程是Jenkins上配置打包任务-->自动到git目录下找打包文件---->项目编译后打镜像包------>打完镜像包将镜像上传到…...
【算法专题十】哈希表
文章目录 0.哈希表简介1. 两数之和1.1 题目1.2 思路1.3 代码 2.判断是否为字符重排2.1 题目2.2 思路2.3 代码 3. leetcode.217.存在重复元素3.1 题目3.2 思路3.3 代码 4. leetcode.219.存在重复的元素Ⅱ4.1 题目4.2 思路4.3 代码 5. leetcode.49.字母异位词分组5.1 题目5.2 思路…...
鸿蒙系统被抹黑的深层解析:技术、商业与地缘政治的复杂博弈-优雅草卓伊凡
鸿蒙系统被抹黑的深层解析:技术、商业与地缘政治的复杂博弈-优雅草卓伊凡 一、技术过渡期的必然误解 1.1 兼容性设计的双刃剑效应 鸿蒙系统早期版本的兼容性策略为后续争议埋下了伏笔。2019年华为被列入实体清单后,面临着生死存亡的技术断供危机。在这…...
Nginx 安全防护与 HTTPS 安全部署
目录 Nginx 安全防护与 HTTPS 安全部署 一、引言 二、Nginx 安全防护措施 2.1 关闭不必要的服务和端口 2.2 限制访问频率 2.3 防止 SQL 注入和 XSS 攻击 2.4 隐藏 Nginx 版本信息 三、HTTPS 安全部署 3.1 HTTPS 简介 3.2 申请 SSL/TLS 证书 3.3 配置 Nginx 启用 HTTP…...
告别异步复杂性?JDK 21 虚拟线程让高并发编程重回简单
长期以来,Java 的并发编程主要围绕平台线程(Platform Threads)构建。然而,在现代应用对海量并发的巨大需求面前,传统模型面临着可伸缩性的挑战。JDK 21 引入了一项突破性的特性——虚拟线程(Virtual Thread…...
Marin说PCB之POC电路layout设计仿真案例---08
Layers –stackup: RX1_96724F_FAKRA_1仿真原理图信息如下,设计中采用了6Gbps/187Mbps的速率配置: IL的limited: RL的limited: RX1_96724F_FAKRA_1--Return Loss:结果显示,板级设计裕量不是很充足,很接近限值曲线了。 …...
【Python系列】Python 中的 HTTP 请求处理
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
【BUG】mmdetection ValueError: need at least one array to concatenate
问题: 使用mmdetection框架使用COCO格式训练自定义数据集时出现如下错误: ValueError: need at least one array to concatenate 解决方法: 修改mmdet/datasets/coco.py文件,将CocoDataset类中的METAINFO修改为自己数据集的类别信…...
GLIBC:GLIBCXX not found
更多内容:XiaoJ的知识星球 目录 1. GLIBCXX not found2.解决方法:(使用预编译库)2.1 获取预编译libstdc库2.2 获取预编译libc库 注意:涉及到修改GLIBC库是个危险操作,可能会影响到系统。请谨慎操作…...
初步认识java
目录 1. java语言概述 1.1 java是什么 1.2 Java语言重要性 1.2.1 语言广泛使用程度 1.2.2 使用领域 1.3 Java语言发展简史 1.4 Java语言的特点 2. Java开发环境安装 2.1 什么是JDK 2.2 什么是JRE 2.3 什么是JVM 2.4 JDK、JRE 和 JVM的包含关系 2.5 JDK的安装和环…...
ShardingJdbc-水平分库
ShardingJdbc-水平分库 水平分库 表结构相同、记录不同、所属库不同多个库中表记录数和才是总的记录数通常根据主键ID进行分表,这里采用奇偶策略 案例 建立库 sharding_demo-1、sharding_demo-2每个库建立表 user_1、user_2 表结构相同id 为主键,big…...
模板模式 VS 建造者模式
模板模式和建造者模式是两种不同的设计模式,下面从定义、结构、应用场景等方面介绍它们的区别,并给出 Python 示例代码。 定义 模板模式:定义了一个操作中的算法骨架,将一些步骤的实现延迟到子类中。这样,子类可以在…...
模态编码器
1.CLIP的textEncoder能输入多少个单词? CLIP 模型中的 context_length 设置为 77,表示每个输入句子会被 tokenized 成最多 77 个token。这个 77 并不是直接对应到 77 个单词, 因为一个单词可能会被拆分成多个 token,特别是对于较长的或不常…...
Python-map从基础到进阶
无论你是打打算法比赛还是做项目map函数肯定都是你必学内置函数,这篇文章小白也能轻松掌握map函数,学习map,理解map,进阶用法map 描述 map() 函数会根据提供的函数对指定序列做映射。 第一个参数 function 以参数序列中的每一个…...
大数据产品销售数据分析:基于Python机器学习产品销售数据爬虫可视化分析预测系统设计与实现
文章目录 大数据产品销售数据分析:基于Python机器学习产品销售数据爬虫可视化分析预测系统设计与实现一、项目概述二、项目说明三、研究意义四、系统总体架构设计总体框架技术架构数据可视化模块设计图后台管理模块设计数据库设计 五、开发技术介绍Flask框架Python爬…...
「Mac畅玩AIGC与多模态21」开发篇17 - 多字段判断与多路径分支工作流示例
一、概述 本篇在结构化输出字段控制流程的基础上,进一步引入多字段联合判断与多路径分支控制。通过综合分析用户输入的情绪类型和紧急程度,实现三分支路径执行逻辑,开发人员将掌握复杂流程中多条件判断节点的配置技巧。 二、环境准备 macO…...
网页截图指南
截取网页截图看似是一项简单的任务,但当你真正动手去做的时候,就会发现事情远没有那么容易。我在尝试截取一篇很长的 Reddit 帖子时就深有体会。一开始我以为只要调用 browser.TakeImage() 就万事大吉,结果却陷入了浏览器视口、动态内容加载、…...
作为主动唤醒的节点,ECU上电如何请求通讯
一个ECU如果作为主动唤醒的节点,ECU上电时可以通过以下方式请求通信 如上图所示,ECU在上电后,在OS起来后,可以通过在BSWM模块中完成NvM_ReadAll和相关BSW 模块初始化以及Rte_Start后,这个时候周期性Task已经可以正常调…...
应用服务器Tomcat
启动两给tomcat apache-tomcat-9.0.60\bin——> 启动tomcat startup.bat (Windows) / startup.sh(Linux) 关闭tomcat shutdown.bat(Windows)/shutdown.sh (Linux) 复制一个Tomcat为2,先启…...
【安全】端口保护技术--端口敲门和单包授权
【安全】端口保护技术--端口敲门和单包授权 备注一、端口保护二、端口敲门三、单包授权 备注 2025/05/06 星期二 最近学习了端口保护技术总结一下 一、端口保护 为了保护联网设备的安全,一般会尽量减小暴露的攻击面,开放的端口就是最常见的攻击面&…...
金升阳科技:配套AC/DC砖类电源的高性能滤波器
金升阳推出的FC-L15HB是为我司AC砖类电源配套使用的EMC辅助器。将FC-L15HB加装在金升阳AC/DC砖类电源的前端,可以提高电源产品IEC/EN61000—4系列及CISPR32/EN55032标准的EMC性能。 01 产品优势 (1)高共差模插入损耗 ①DM&CM࿱…...
浅谈 - GPTQ为啥按列量化
前言 曾在游戏世界挥洒创意,也曾在前端和后端的浪潮间穿梭,如今,而立的我仰望AI的璀璨星空,心潮澎湃,步履不停!愿你我皆乘风破浪,逐梦星辰! 先说结论 GPTQ 按列量化 W,…...
引用第三方自定义组件——微信小程序学习笔记
1. 使用 npm 安装第三方包 1.1 下载安装Node.js 工具 下载地址:Node.js — Download Node.js 1.2 安装 npm 包 在项目空白处右键弹出菜单,选择“在外部终端窗口打开”,打开命令行工具,输入以下指令: 1> 初始化:…...
解决android studio 中gradle 出现task list not built
点击 file 选择settings...
UE5 材质淡入淡出
混合模式选择半透明,灯光照明模式选择Surface TranslucencyVolume...
如何用Java读取PDF
在本文中,我将向您展示如何使用JPedal(一个用于转换、打印、查看PDF文件的Java库)在Java中读取PDF。 如何在Java中读取PDF文件 • 将JPedal添加到您的类或模块路径中(下载试用版jar包)。 • 使用JPedal库中的&q…...
tinyrenderer笔记(中)
tinyrenderer个人代码仓库:tinyrenderer个人练习代码 前言 原教程的第 4 课与第 5 课主要介绍了坐标变换的一些知识点,但这一篇文章的内容主要是手动构建 MVP 矩阵,LookAt 矩阵以及原教程涉及到的一些知识点,不是从一个图形学小白…...
人工智能对人类的影响
人工智能对人类的影响 近年来,人工智能(AI)技术以惊人的速度发展,深刻改变了人类社会的方方面面。从医疗、教育到交通、制造业,AI的应用正在重塑我们的生活方式。然而,这一技术革命也带来了机遇与挑战并存…...
LeetCode 220 存在重复元素 III 题解
LeetCode 220 存在重复元素 III 题解 题目描述 给定一个整数数组 nums 和两个整数 k 和 t,请判断数组中是否存在两个不同的索引 i 和 j,使得: abs(nums[i] - nums[j]) < tabs(i - j) < k 方法思路:桶排序 滑动窗口 核…...
0506--01-DA
36. 单选题 在娱乐方式多元化的今天,“ ”是不少人(特别是中青年群体)对待戏曲的态度。这里面固然存在 的偏见、难以静下心来欣赏戏曲之美等因素,却也有另一个无法回避的原因:一些戏曲虽然与观众…...
单应性估计
单应性估计是计算机视觉中的核心技术,主要用于描述同一平面在不同视角下的投影变换关系。以下从定义、数学原理、估计方法及应用场景等方面进行综合解析: 一、单应性的定义与核心特性 单应性(Homography)是射影几何中的概念&…...
Missashe考研日记-day33
Missashe考研日记-day33 1 专业课408 学习时间:2h30min学习内容: 今天开始学习OS最后一章I/O管理的内容,听了第一小节的内容,然后把课后习题也做了。知识点回顾: 1.I/O设备分类:按信息交换单位、按设备传…...
YOLO8之学习指南
一、引言 在计算机视觉领域,目标检测是一项核心任务,其应用范围广泛,涵盖安防监控、自动驾驶、智能医疗等众多领域。YOLO(You Only Look Once)系列算法凭借其高效、快速的特点,在目标检测领域占据重要地位。YOLO8 作为 YOLO 系列的最新版本,进一步提升了检测精度和速度…...
中达瑞和便携式高光谱相机:珠宝鉴定领域的“光谱之眼”
在珠宝行业中,真伪鉴定始终是核心需求。随着合成技术与优化处理手段的日益精进,传统鉴定方法逐渐面临挑战。中达瑞和推出的便携式高光谱相机,凭借其独特的“图谱合一”技术,为珠宝真假鉴定提供了科学、高效且无损的解决方案&#…...
C++自动重连机制设计与实现指南
一、为什么需要自动重连 在网络通信场景中,连接中断是不可避免的常见问题: 网络波动(移动网络切换、WiFi信号不稳) 服务端维护/重启 中间设备故障(路由器、负载均衡器) 操作系统资源限制 长时间空闲断…...
昇腾Atlas 200I DK A2 开发者套件无法上网问题的解决
目录 引言 USB WiFi网卡 USB以太网卡 结语 引言 今年通过华为的智能基座项目得到了三个Atlas 200I DK A2 开发者套件,很不幸其中有一块是坏的,其上网部分不能使用:2个RJ45的口在Linux系统内都无法识别,而USB口虽然能够识别&a…...
私有仓库 Harbor、GitLab
gitlab 部署资料 Harbor...
极狐GitLab 如何将项目共享给群组?
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 共享项目和群组 (BASIC ALL) 在极狐GitLab 16.10 中,更改为在成员页面的成员选项卡上显示被邀请群组成员…...
QGIS分割平行四边形
需求:四个点确定的平行四边形的范围,我想把他们均分成20份,然后取质心。 解决方案:找了好几个插件,Polygon Divider、Split Polygon发现不好用,不能满足需求。最终找到了Equalyzer,就是比较麻烦…...
NestJS 的核心构建块有哪些?请简要描述它们的作用(例如,Modules, Controllers, Providers)
NestJS 核心构建块解析(Modules、Controllers、Providers) NestJS 是一个基于 TypeScript 的渐进式 Node.js 框架,核心设计借鉴了 Angular 的模块化思想。下面从实际开发角度解析它的三大核心构建块,并附代码示例和避坑指南。 一…...
Nginx 安全防护与Https 部署实战
目录 一、核心安全配置 1. 编译安装 Nginx 2. 隐藏版本号 3. 限制危险请求方法 4. 请求限制(CC 攻击防御) (1)使用 Nginx 的 limit_req 模块限制请求速率 (2)压力测试验证 5. 防盗链 二、高级防护 …...