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

STM32之定时器(TIMER)与脉冲宽度调制(PWM)

一、STM32定时器的原理与应用

  • 基本概念

定时器的作用一般是为了使用定时功能和中断功能(洗衣机、微波炉、电风扇、智能空调......),当然在STM32中也可以利用定时器产生周期性的脉冲信号来控制不同的外设(电机的转速、舵机的角度、灯光的亮度........),所以掌握STM32中的定时器对于项目开发是很有必要的。

  • 外设种类

对于STM32F407微处理器而言,内部一共集成了14个定时器,其中有2个基本定时器(TIM6和TIM7)、10个通用定时器(TIM2~TIM5、TIM9~TIM14)、2个高级定时器(TIM1和TIM8)。

其中通用定时器TIM2和TIM5为32位定时器,其他为16位定时器,当然,定时器位数越大,定时时间越久。

  • 基本特点

  • 时钟分析

  • 内部框图

  • 程序设计

练习:要求使用4个定时器,实现对开发板的4个LED进行控制,要求D0每隔100ms电平翻转1次,D1每隔800ms电平翻转1次,D2每隔20s电平翻转1次,D3每隔100s电平翻转1次。

  • 功能拓展

相比于基本定时器而言,通用定时器增加了输入捕获功能以及输出比较功能,并且通用定时器具有独立通道,就可以把GPIO引脚连接到某个通道,利用通道进行输入信号的检测以及脉冲信号的输出。

STM32F407ZET6一共提供10个通用定时器(TIM2~TIM5、TIM9~TIM14),TIM2和TIM5是32bit定时器,其他的定时器都是16bit定时器。TIM2~TIM5的计数方式有三种可以选择,分别为递增计数、递减计数、递增/递减计数。

递增计数:计数器从 0 计数到自动重载值(TIMx_ARR 寄存器的内容),然后重新从 0 开始计数并生成计数器上溢事件。

递减计数:计数器从自动重载值(TIMx_ARR 寄存器的内容)开始递减计数到 0,然后重新从自动重载值开始计数并生成计数器下溢事件。

中心对齐:计数器从 0 开始计数到自动重载值(TIMx_ARR 寄存器的内容)- 1,生成计数器上溢事件;然后从自动重载值开始向下计数到 1 并生成计数器下溢事件。之后从 0 开始重新计数。

对于通用定时器TIM2~TIM5,都挂载在APB1外设总线下,定时器的频率为84MHZ,对于TIM12~TIM14都挂载在APB1外设总线下,定时器的频率为84MHZ,TIM9~TIM11是挂载在APB2总线下,所以定时器的频率为168MHZ,如下图

定时功能:基本上使用流程和基本定时器一致,只不过通用定时器的计数方式更灵活而已。

输入捕获:可以把定时器的某个通道连接到GPIO引脚上,然后从外部输入脉冲信号,经过 通道的滤波以及边沿检测之后,可以记录某个电平信号的脉冲宽度以及周期。

输出比较:可以把定时器的某个通道连接到GPIO引脚上,主动从引脚输出一个固定的脉冲, 原理很简单,其实就是计数器(TIM_CNT)如果超过比较寄存器中的值,就可以 输出一个电平信号(高电平或者低电平)。

对于TIM9~TIM14而言,也可以进行定时功能,同样也具有输入捕获以及输出比较功能,但是只能采用向上计数的方式,并且相比于TIM2~TIM5,只有2个独立通道。

  • 脉宽调制

PWM(Pulse Width Modulation)称为脉冲宽度调制,脉冲宽度调制是能利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中,比如PWM技术可以用在工业控制领域(控制电机的转速、控制舵机的角度........)。

PWM技术的关键参数有两个,一个是频率,一个是占空比频率指的是利用STM32的定时器通道输出脉冲的次数。占空比是指在一个脉冲周期中通电时间相对于总时间所占的比例,也可以简单理解为一个周期内高电平持续时间相对于总时间所占的比例(%)。

要实现精确的占空比控制,该电路必须有恒定的工作频率做保证。其实频率固定,也就是工作电路周期固定。因为占空比控制的电路接通率是建立在恒定工作周期上的,如果电子控制模块控制电路的周期不能保证恒定,那么所谓的占空比控制是毫无意义的。

思考:比如想要利用MCU的某个IO口去控制硬件,,需要使用定时器的某个通道,因为通道才有比较功能,请问应该用哪个定时器的哪个通道? 回答:查阅数据手册 !!!

PWM技术的原理其实很简单,就是利用STM32定时器中的某个通道的输出比较功能来输出周期性的脉冲信号,然后调节脉冲的宽度(调节占空比)达到控制外设的目的。

  • 调制原理

  • 舵机控制

  • 硬件接线

  • 程序设计

/** ****************************************************************************** * @file main.c 
* @author cecelmx@126.com 
* @version * @date 2025/03/27 
* @brief 利用MCU的通用定时器TIM3的输出比较功能实现PWM调节舵机的角度 ****************************************************************************** 
* @note 
* 1. 舵机的型号是SG90,该舵机的角度是0~180度,对应的脉冲信号是20ms 
* 2. 舵机的角度控制需要0.5ms~2.5ms的高电平,比例关系: 0度 -- 0.5ms * 3. IO口需要复用为定时器的通道,所以IO口必须设置为复用模式 * ****************************************************************************** */ 
/* Includes ------------------------------------------------------------------
*/ 
#include "stm32f4xx.h" //必须包含 
void SG90_Config(void) 
{TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; 
GPIO_InitTypeDef GPIO_InitStructure; 
TIM_OCInitTypeDef TIM_OCInitStructure; 
//1.打开TIM3的时钟 
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); 
//2.打开GPIO端口时钟 
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//3.配置IO口为复用模式GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //复用模式 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; 
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
GPIO_Init(GPIOC, &GPIO_InitStructure); 
//4.把IO口复用为定时器 
GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_TIM3); 
//5.配置TIM3的时基 + 初始化TIM3 
TIM_TimeBaseStructure.TIM_Prescaler = 8400-1; 
TIM_TimeBaseStructure.TIM_Period = 200-1; 
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); 
//6.配置定时器的通道的参数 
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 5; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 
TIM_OC1Init(TIM3, &TIM_OCInitStructure); 
//7.使能预装载寄存器 
TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);//8.使能自动重载预装载寄存器 
TIM_ARRPreloadConfig(TIM3, ENABLE);//9.使能TIM3 
TIM_Cmd(TIM3, ENABLE); } 
/** 
* @brief 微秒延时函数 
* @param nTime: 待延时的微秒时间
* @retval None 
* @note 函数参数不能超过798915us 
*/ 
void delay_us(__IO uint32_t nTime) 
{ 
SysTick->CTRL = 0; // 关闭定时器 
SysTick->LOAD = 21 * nTime - 1; // 设置重载值SysTick->VAL = 0; // 清空计数器 
SysTick->CTRL = 1; //打开定时器,并且使用21MHZ时钟源 
while ((SysTick->CTRL & 0x00010000)==0);// 等待延时时间到达SysTick->CTRL = 0; // 关闭定时器}/** 
* @brief 毫秒延时函数 
* @param nTime: 待延时的微秒时间 
* @retval None 
* @note 函数参数不能超过798ms 
*/ 
void delay_ms(__IO uint32_t nTime)
{ 
SysTick->CTRL = 0; // 关闭定时器 
SysTick->LOAD = 21 * nTime * 1000 - 1; // 设置重载值 
SysTick->VAL = 0; // 清空计数器 
SysTick->CTRL = 1; //打开定时器,并且使用21MHZ时钟源 
while ((SysTick->CTRL & 0x00010000)==0);// 等待延时时间到达 
SysTick->CTRL = 0; // 关闭定时器 
} 
int main(void){ 
//1.硬件初始化 
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); //中断优先级分组 
SG90_Config();BEEP_Init();while(1) 
{ 
TIM_SetCompare1(TIM3,5); // 0.5ms -- 0度 delay_ms(200); //延时200ms TIM_SetCompare1(TIM3,10); // 1.0ms -- 45度 delay_ms(200); //延时200ms TIM_SetCompare1(TIM3,15); // 1.5ms -- 90度 delay_ms(200); //延时200ms TIM_SetCompare1(TIM3,20); // 2.0ms -- 135度 delay_ms(200); //延时200ms TIM_SetCompare1(TIM3,25); // 2.5ms -- 180度 delay_ms(200); //延时200ms } } /************************ (C) COPYRIGHT Your Name *****END OF FILE*************/

实战练习:实现一个智能开关,要求通过开发板的2个机械按键,KEY0用于断开,KEY1用于闭合,结合舵机实现智能开关的功能。

  • 灯光亮度

实战作业:要求实现氛围灯的调光功能,要求灯光亮度有4个档位,要求只使用1个按键,通过短按实现亮度调节,拓展:长按实现灯的开关。

思考:如果想要利用PWM技术控制开发板的LED1(PF10)LED灯的亮度,请问怎么实现???

回答:对于传感器(比如舵机、电机.....)或者外部设备(LED、BEEP.....)而言,其实并不关心脉冲信号的来源,只根据脉冲信号来进行驱动,所以脉冲信号可以选择使用定时器的通道来生成,但是这种方案可移植性较差,原因就是有的IO口并没有定时器通道的功能。

所以也可以选择利用定时器(定时功能)来模拟周期性的脉冲信号,也就是说可以利用IO口的输出功能来输出高低电平 + 精准延时,实现PWM占空比的调节。

相关文章:

STM32之定时器(TIMER)与脉冲宽度调制(PWM)

一、STM32定时器的原理与应用 基本概念 定时器的作用一般是为了使用定时功能和中断功能(洗衣机、微波炉、电风扇、智能空调......),当然在STM32中也可以利用定时器产生周期性的脉冲信号来控制不同的外设(电机的转速、舵机的角度…...

Linux jq 命令使用详解

简介 jq 是一个命令行 JSON 处理器,允许解析、过滤、转换和格式化 JSON 数据,提取特定字段或重构 JSON,高效使用 JSON 中的 API 或配置文件。 安装 Debian/Ubuntu sudo apt install jqCentOS/RHEL sudo yum install jq或sudo dnf insta…...

【25软考网工】第七章 (2)UOS Linux文件和目录管理、用户和组管理

博客主页:christine-rr-CSDN博客 ​​专栏主页:软考中级网络工程师笔记 ​​​ 大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新三十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你&#x…...

1.3 C++之变量与数据类型

变量与数据类型教程 目标 理解变量是存储数据的“容器”,数据类型决定容器中能放什么。掌握 int, float, char, bool 的使用。学会声明变量、赋值,定义常量 const。 一、什么是变量? 生活比喻:变量就像“贴了标签的盒子” 盒子…...

SAR ADC 比较器寄生电容对性能的影响

比较器的输入端直接连接CDAC的输出,那比较器的输入端的寄生电容对SAR ADC的性能是否有影响,我们来分析一下。 这是一个单端传统的SAR ADC,SAR ADC 转换只需要采样阶段和转换两个阶段,其中采样阶段一般包含比较器的offset的校正。 采样阶段:接Vin的开关闭合,接Vcom的开关…...

20250520在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04.3时跑通4G模块EC20

1、h3-sd-friendlycore-xenial-4.14-armhf-20210618.img.gz 在WIN10下使用7-ZIP解压缩/ubuntu20.04下使用tar 2、Win32DiskImager.exe 写如32GB的TF卡。【以管理员身份运行】 3、TF卡如果已经做过会有3个磁盘分区,可以使用SD Card Formatter/SDCardFormatterv5_WinE…...

探秘汽车门槛梁内板右后段成型工艺

引言:汽车制造的关键环节 在汽车制造的复杂体系中,每一个零部件都扮演着不可或缺的角色,其中汽车门槛梁内板右后段虽看似平凡,却对汽车的整体性能和安全起着关键作用。它是车身结构的重要组成部分,犹如建筑的基石&…...

阅读笔记---城市计算中用于预测学习的时空图神经网络研究综述

摘要 随着近年来传感技术的进步,智能城市产生并记录了无数的时空数据。预测时空数据的演变模式是城市计算的一个重要而又苛刻的方面,它可以增强各个领域的智能管理决策,包括交通、环境、气候、公共安全、医疗保健等。传统的统计和深度学习方…...

SpringBootDay1|面试题

目录 一、springboot框架 1、什么是springboot 2、Spring Boot的主要优点 3、springboot核心注解 4、定义banner(springboot的logo) 5、springboot配置文件 6、springboot 整合 jdbc 二、面试题 1)springmvc的作用 ​编辑 2&#x…...

PyCharm2025的字体的设置

前言 Pycharm中的字体调节,看起来似乎无足轻重。但是,能从容的调节,也是蛮好的,特别是做程序演示的时候。 当前PyCharm采用的是最新的2025.1.1版本(Community),当前的操作系统是Windows。 一、初始状态 …...

【Linux】进程间通信(三):命名管道

📝前言: 这篇文章我们来讲讲Linux 进程间通信(三)——命名管道 🎬个人简介:努力学习ing 📋个人专栏:Linux 🎀CSDN主页 愚润求学 🌄其他专栏:C学习…...

人工智能+:职业技能培训的元命题与能力重构

当“人工智能”成为各行各业的热门命题时,我们似乎跳过了一个更根本的思考:人类究竟需要怎样的AI能力?这个问题不解决,任何技术赋能都可能沦为无本之木。真正的挑战不在于如何应用AI,而在于如何定义人与AI的能力边界—…...

HarmonyOS5云服务技术分享--云存储SDK文章整理

在HarmonyOS ArkTS应用中集成华为云存储SDK指南 大家好呀!今天咱们来聊聊如何将华为云存储SDK集成到基于ArkTS(API 9-11)的HarmonyOS应用中。这篇指南会手把手带你完成从环境准备到代码实现的完整流程,过程中遇到的常见问题也会贴…...

《财务自由之路Ⅱ》理论篇

欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。 目录 引言认知赚钱方式收入与负债都很重要整天工作的人,没有时间赚钱 一些建议做法…...

AI筑基,新质跃升|英码科技亮相华为广东新质生产力创新峰会,发布大模型一体机新品,助力产业智能化转型

5月15日,以“AI筑基,新质跃升”为主题的华为中国行2025广东新质生产力创新峰会在惠州圆满召开。本次峰会聚焦人工智能、算力基础设施等新ICT技术如何驱动“新质生产力”,共探广东高质量发展新路径。英码科技受邀出席本次峰会,并携…...

【C++】C++的拷贝构造函数介绍使用

拷贝构造函数 1.作用示例代码1:拷贝构造函数的调用示例代码2:系统默认的拷贝构造做的事情示例代码3:写法1-4示例代码4:写法5示例代码5:C编译器默认给类提供了4中隐含的方法 2.语法规则示例代码: 3.深拷贝和…...

能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了

能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了 能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了1.项目介绍2. 项目源码开发2.1克隆项目2.2 配置并运行 3.使用3.1添加数据库连接3.2新增表3.3操作表3.4 运行sql 4.总结 能管理MySQL、Oracle、达梦数据库的桌面管理…...

5.20打卡

浙大疏锦行 DAY 31 文件的规范拆分和写法 知识点回顾 1. 规范的文件命名 2. 规范的文件夹管理 3. 机器学习项目的拆分 4. 编码格式和类型注解 作业:尝试针对之前的心脏病项目,准备拆分的项目文件,思考下哪些部分可以未来复用。 预处理&am…...

unity XCharts插件生成曲线图在UICanvas中

【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用_unity xcharts-CSDN博客...

创建thinkphp项目并配置数据库

配置环境并引入UI ssr模式 使用 composer 命令在指定的目录安装 Thinkphp6.x composer create-project topthink/think tp6demo出现Fatal error: Directive ‘track_errors’ is no longer available in PHP in Unknown on line 0说明你的php版本较高,在php.ini中…...

头歌实践平台:动态NAT配置

第一:打开GNS3,创建名为nat的项目文件 第二:创建网络拓扑结构如下: note:s端口线需要在关闭路由器的情况下双击进入,选配4T端口(不要忘记点击OK) 第三:打开所有设备(所…...

贝叶斯优化+CNN+LSTM=小论文创新点

2周速成小论文可能吗?有点悬,但有可能。今天我就给论文er推荐一个高潜力、易创新、适合速发的小论文选题:贝叶斯优化CNNLSTM! 这种“三结合”的优势在于技术成熟度高(经典CNN和LSTM)、创新点灵活性强&…...

软考中级软件设计师——计算机网络 IP地址与子网掩码相关题型

一、常见题型分类 题型考查重点解题关键子网划分根据需求划分子网,计算网络地址、广播地址、可用主机范围等二进制与十进制转换,子网掩码计算,网络位与主机位划分子网掩码转换CIDR表示法(如/24)与点分十进制&#xff…...

bi报表是什么意思?如何制作一张bi报表?

目录 一、BI 报表是什么意思? 1. BI 报表的基本概念 2. BI 报表的特点 3. BI 报表的作用 二、制作 BI 报表的前期准备 1. 明确报表的目标和需求 2. 确定数据来源 3. 选择合适的 BI 工具 三、制作 BI 报表的具体步骤 1. 数据收集与整理 2. 数据分析 3. 可…...

vivado fpga程序固化

一般下载到fpga上的程序在掉电之后就会丢失,如果想要掉电之后程序不丢失,就需要将比特流文件固化到板载的flash上。 以下以我的7a100t开发板为例,介绍程序固化的流程 点击OK就可以下载了。...

人生的真谛杂谈

文章目录 自我的哲学奠基自我存在的真实性身体与思想的决定关系自由意志自我的当代解构 三观的意义系统构建世界观:认知世界的根基人生观:生命意义的探索价值观:行为选择的准则三观构建的终极目标 价值的哲学解构价值的本体论价值客观性的形而…...

【Java】继承和多态在 Java 中是怎样实现的?

extends 关键字 class 子类 extends 父类 {... } // 类继承是单继承父类的哪些成员被继承 ? 访问修饰符 public 和 protected 修饰的父类成员字段和成员方法可以被继承 , 父类的默认方法只能在同包下继承 , 父类的 private 成员和构造方法不可继承 . super 关键字 表示父类…...

输出字母在字符串中位置索引

输入一个字符串,再输入两个字符,求这两个字符在字符串中的索引。 输入格式: 第一行输入字符串 第二行输入两个字符,用空格分开。 输出格式: 从右向左输出字符和索引,即下标最大的字符最先输出。每行一个。 输入样例: 在这里…...

Oracle中如何解决LATCH:CACHE BUFFERS LRU CHAIN

简单来讲,Oracle为了高效管理BUFFER CACHE主要使用以下2种LRU列: LRU列,又叫替换列(replacement list),其中又分为主列和辅助列。 主列:已使用的缓冲区列,分为HOT和COLD区域。HOT区…...

FPGA:基于Vivado的仿真流程与波形调试实践

在FPGA开发过程中,仿真是验证设计逻辑正确性的关键环节。尤其在复杂系统中,单靠硬件板级调试远远不够,往往需要依赖仿真工具提前发现潜在问题,提升开发效率。本文将结合Xilinx Vivado设计套件,系统梳理从仿真环境构建到…...

前端流行框架Vue3教程:20. 插槽slot(2)

插槽slot&#xff08;2&#xff09; 渲染作用域 插槽内容可以访问到父组件的数据作用域&#xff0c;因为插槽内容本身是在父组件模板中定义的 SlotsTow.vue <script> export default {data() {return {};} } </script><template><h3>Slots续集</…...

CodeBuddy全新升级:体验Craft智能体的对话式编程革命

本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 腾讯云AI编程助手官网&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 目录 引言&#xff1a;软件开发的新范式 一、Craft智能体核心功能解析 1.1 自然语…...

基于SpringBoot+Vue的学籍管理系统的设计与实现

获取源码&#xff1a;SpringBootVue的学籍管理系统: 学籍管理系统&#xff1a;登录、个人中心、学生管理、教师管理、学院管理、专业管理、班级信息管理、课程信息管理、学生成绩管理、学生学籍管理、招生信息录入等功能 系统演示视频地址&#xff1a;SpringBootVue的学籍管理…...

【动态规划】P10988 [蓝桥杯 2023 国 Python A] 走方格|普及+

本文涉及知识点 C动态规划 P10988 [蓝桥杯 2023 国 Python A] 走方格 题目描述 给定一个 N N N 行 N N N 列的方格&#xff0c;第 i i i 行第 j j j 列的方格坐标为 ( i , j ) (i, j) (i,j)&#xff0c;高度为 H i , j H_{i,j} Hi,j​。小蓝从左上角坐标 ( 0 , 0 ) …...

pycharm无法正常调试问题

pycharm无法正常调试问题 1.错误代码 已连接到 pydev 调试器(内部版本号 231.8109.197)Traceback (most recent call last):File "E:\Python\pycharm\PyCharm 2023.1\plugins\python\helpers\pydev\_pydevd_bundle\pydevd_comm.py", line 304, in _on_runr r.deco…...

自学嵌入式 day21 - 数据结构 双向链表

1.双向链表 2.基础操作 &#xff08;1&#xff09;头部插入 int InsertHeadDouLinkList(DouLinkList *dl,DATATYPE *data) { DouLinkNode *newnode (DouLinkNode *)malloc(sizeof(DouLinkNode));//定义新节点来存储需插入的数据 if(NULL newnode)//判断结点空间…...

Ubuntu 22.04安装zabbix7.0.0图形中文乱码

在 Ubuntu 22.04 上安装 Zabbix 7.0.0 时&#xff0c;如果图形界面&#xff08;如仪表盘、图表&#xff09;出现中文乱码&#xff0c;通常是因为缺少中文字体或字体配置不正确。以下是完整的解决方案&#xff1a; 1. 安装中文字体 安装 fonts-wqy-microhei&#xff08;文泉驿微…...

docker环境和dockerfile制作

docker 一、环境和安装 1、 docker安装 使用 root 权限登录 CentOS。确保 yum 包更新到最新sudo yum update卸载旧版本yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux …...

《经济日报》深度聚焦|珈和科技携手万果博览荟共筑智慧农业新示范高地 全链赋能蒲江茶果产业数字化转型升级

近日&#xff0c;《经济日报》深度聚焦报道了《珈和科技携手万果博览荟打造智慧农业新示范 双轮驱动绘就西南农业全链发展新篇章》。 作为国家级重点财经新闻媒体&#xff0c;《经济日报》对珈和科技与蒲江县人民政府战略合作签约&#xff0c;成立四川珈和科技子公司落地万果博…...

科技赋能·长效治理|无忧树建筑修缮渗漏水长效治理交流会圆满举行!

聚焦行业痛点&#xff0c;共话长效未来&#xff01;5月16日&#xff0c;由无忧树主办的主题为“科技赋能长效治理”的建筑修缮渗漏水长效治理技术交流会在上海圆满举行。来自全国的建筑企业代表、专家学者、技术精英齐聚一堂&#xff0c;共探渗漏治理前沿技术&#xff0c;见证科…...

文章记单词 | 第100篇(六级)

一&#xff0c;单词释义 immediate /ɪˈmiːdiət/ adj. 立即的&#xff1b;直接的&#xff1b;紧迫的hypothesis /haɪˈpɑːθəsɪs/ n. 假设&#xff1b;假说&#xff08;复数&#xff1a;hypotheses&#xff09;disregard /ˌdɪsrɪˈɡɑːrd/ v./n. 忽视&#xff1b…...

React表单开发的瑞士军刀:Formik与Yup实战指南

——揭秘高效表单开发的黄金公式 开篇&#xff1a;一场关于效率的革命 2023年某日凌晨&#xff0c;某互联网大厂会议室灯火通明。前端团队正为表单校验逻辑争论不休&#xff1a; “每次写表单都要重复处理触碰状态、错误消息、异步验证…” “受控组件状态管理太繁琐&#xf…...

瑞莎星睿 O6 (Radxa Orion O6)-ubuntu24.04-ROS2 运行深度估计模型

引言 由Radxa联合此芯科技与安谋科技打造的"星睿O6"迷你ITX主板堪称当前最受期待的开发板之一。该产品搭载的CIX P1&#xff08;CD8180&#xff09;12核Armv9处理器配合30TOPS算力的NPU和高性能GPU&#xff0c;结合最高64GB LPDDR内存&#xff0c;非常适合AI开发工作…...

【ubuntu】虚拟机连不上网,且网络中没有有线连接

错误图示 sudo gedit /etc/NetworkManager/NetworkManager.conf managedtruesudo gedit /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf 添加except:type:ethernet,然后重启 sudo service network-manager stop sudo rm /var/lib/NetworkManager/Networ…...

Ubuntu软件仓库与更新源配置指南

一、软件仓库基础知识 软件仓库的作用 Ubuntu 通过预设的软件仓库&#xff08;Repository&#xff09;提供软件包&#xff0c;包含系统核心组件、第三方应用及安全更新。仓库分为&#xff1a; Main&#xff1a;官方维护的自由开源软件 Universe&#xff1a;社区维护的自由开源…...

Docker run -v 的 rw 和 ro 模式_docker ro

一、前言 在使用 Docker 启动容器时&#xff0c;通常需要将宿主机的文件或目录挂载到容器中&#xff0c;以便于管理配置、持久化数据和调试日志。本篇博客将重点介绍 -v/--volume 参数的使用方式、挂载权限&#xff08;rw 与 ro&#xff09;的区别&#xff0c;以及如何通过 do…...

React+TypeScript多步骤表单:告别表单地狱的现代解决方案

开篇&#xff1a;深夜的表单困局 凌晨两点&#xff0c;键盘声在寂静的办公室回响。前端工程师小李盯着屏幕上的错误提示&#xff1a;“类型"FormData"上不存在属性’email’”。这已经是本周第三次因为字段名拼写错误导致的调试灾难。他揉着发酸的眼睛想&#xff1a…...

【工具使用】STM32CubeMX-USB配置-实现U盘功能

一、概述 无论是新手还是大佬&#xff0c;基于STM32单片机的开发&#xff0c;使用STM32CubeMX都是可以极大提升开发效率的&#xff0c;并且其界面化的开发&#xff0c;也大大降低了新手对STM32单片机的开发门槛。     本文主要讲述STM32芯片USB功能的配置及其相关知识。 二…...

【LUT技术专题】DnLUT代码解读

目录 原文概要 1. 训练 本文是对DnLUT技术的代码解读&#xff0c;原文解读请看DnLUT。 原文概要 DnLUT通过PCM模块和L型卷积&#xff0c;有效提升以往基于LUT方法降低色噪声的能力&#xff0c;用最小的存储量得到了同样的感受野范围&#xff0c;主要是2个创新点&#xff1…...

python宠物用品商城系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…...