vscode+keil嵌入式软件开发全流程
vscode+keil嵌入式软件开发全流程
1 安装MinGW-w64
(1) MinGW-w64 是一个用于Windows操作系统的开发工具集,其包含了C语言编译器 GCC(GNU Compiler Collection),官网地址:https://www.mingw-w64.org。
(2)下载安装包,并解压到相应的安装目录,后添加到环境变量中。
2 安装VSCode
VS Code 官网 https://code.visualstudio.com 下载最新安装包,后安装,注选择附加任务时,全勾选。
安装扩展 Chinese(Simplified)(简体中文)Language Pack for Visual Studio Code,C/C++相关扩展。
3 用VsCode编写第一个C语言程序
在本地磁盘新建C程序保存目录,打开文件夹。
新建文件夹,编写love.c程序
#include<stdio.h>
int main(){int times;for(times=10;times>=1;times--){printf("love you 10 thousands year\n");}return 0;
}
点击运行程序,即可在终端看到结果
4 Keil C51软件安装
4.1 下载安装
官网的下载地址为:https://www.keil.com
点击C51V961.EXE进行安装
4.2 激活keil
以管理员身份打开keil,后在文件中找到License ManageMent
复制CID
运行注册机
注册机粘贴keil中复制的CID,点击生成,复制生成后的许可密钥。
在License Management中粘贴密钥,点击Add LIC按钮,查看license生成结果,关闭
5 STC-ISP烧录工具安装
官方下载地址为:http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.92A.zip
点击stcai-isp-v6.94H.exe进行安装
通过stc-isp向Keil添加STC89C52系列芯片信息
6 用keil C51编写第一个单片机程序
6.1 创建项目
新建工程
项目名test
选择所需芯片
6.2 编写程序
新建文件
文件名为main.c
编写点亮一个灯程序
#include "reg52.h"
sbit led1=P3^7;
void main(){//灯亮,给一个低电平led1=0;
}
上述中文无法正常显示,修改字符集edit->configuration
选择Chinese GB2312
6.3 编译程序
勾选生成hex文件
点击Build按钮进行编译(Translate编译当前文件,仅语法检查,不可生成可执行文件,Build编译当前文件,可生成可执行文件)
6.4 烧录程序
(1))开发板通过数据线连接PC
(2)CH340串口转USB驱动安装(若PC中已安装,则无需再次安装)
(2)启动stc-isp->选择芯片型号和串口,波特率->打开程序文件->下载
7 用VSCode编写单片机程序
7.1 EIDE插件安装
7.2 EIDE插件使用
7.2.1 创建项目
选择空项目
选择8位MCU
选择8051项目
编辑项目名
选择项目保存路径
7.2.2 配置项目
Keil_C51编译器选择,选择Keil C51编译器
设置keil C51编译器路径
设置Include Path(STC芯片的头文件添加到项目的Include Path,方便项目引用)
选择STC头文件所在目录
7.2.3 编写代码
#include "reg52.h"
sbit led1=P3^7;
void main(){//灯亮,给一个低电平led1=0;
}
编译代码
生成hex文件(项目根目录下的build\Relase目录中生成)
使用stc-isp烧录程序
8 Keil MDK的下载和安装
8.1下载安装
官方下载地址:https://www.keil.com/download/product/
点击MDK538a.EXE进行安装
8.2 激活keil
以管理员身份打开keil,后在文件中找到**License ManageMent
复制CID
运行注册机
注册机粘贴keil中复制的CID,点击生成,复制生成后的许可密钥。
8.3 离线安装芯片支持包
关闭芯片支持包的在线安装,从官网下载离线芯片支持包
芯片支持包网址:https://www.keil.arm.com/devices/
下载完成双击即可自动安装
8.4 Keil烧录程序闪退
替换掉D:\developer_tools\Keil_v5_MDK\ARM\STLink目录下STLinkUSBDriver.dll文件
9 用keil MDK编写第一个单片机程序
9.1 创建项目工程
9.1.1 创建需要的目录
创建项目工程存放目录STM32,第一个工程目录led_register
9.1.2 准备启动文件
9.1.2.1 下载芯片对应标准外设库包
标准外设库下载地址:https://www.st.com/zh/embedded-software/stm32-standard-peripheral-libraries/products.html
搜索产品型号
下载最新版本
获取到标准外设库包
9.1.2.2 从标准库中拷贝启动文件和其他核心文件
创建Start目录存放启动文件和其他核心文件
启动文件选择标准:
复制启动文件startup_stm32f10x_md.s
复制文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h
复制文件core_cm3.c,core_cm3.h
复制上述文件到Start目录下后
9.1.3 创建工程
打开keil MDK新建工程
选择所需芯片
工程创建助手关闭
创建后的新项目如下
9.1.4 工程配置
删除Source Group 1,再添加Start(启动相关文件),User(用户代码)这两个project group。
Start 中添加文件
创建main函数,并添加到User中
9.1.5 编译配置
9.1.5.1 编译器改版本
最新的Keil ARM用的是Compiler version 6,与核心文件中的core_cm3.c不兼容,需换成Compiler version 5
下载地址:https://developer.arm.com/downloads/view/ACOMP5
解压后的文件名改为ARMCC后复制到keil MDK安装目录下
添加新的ARM Compiler
选择ARMCC目录
设置为默认ARM Compiler Version
9.1.5.2 其他配置
勾选生成HEX文件
添加包含的文件路径
9.2 编写点灯代码(操作寄存器方式)
#include "stm32f10x.h"
int main(void)
{/* 开启GPIOA的时钟 */RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;/* 给PA0设置为通用推挽输出 */GPIOA->CRL &= ~GPIO_CRL_CNF0_1;GPIOA->CRL &= ~GPIO_CRL_CNF0_0;GPIOA->CRL |= GPIO_CRL_MODE0_1;GPIOA->CRL |= GPIO_CRL_MODE0_0;/* 给输出寄存器赋值 */GPIOA->ODR &= ~GPIO_ODR_ODR0;while (1){}
}
9.3 编译代码
9.3 下载程序
9.3.1 下载程序前配置
安装ST-LINK驱动
keil目录下有ST-LINK的USB驱动,双击运行即可
升级STLink固件
连接STLink烧录器,keil目录下有ST-Link升级程序,双击运行即可
Keil中配置ST-LINK
勾选Reset and Run(程序下载后自动执行)
取消勾选Pack的Enable项(勾选了的话,不会自动执行,需手动复位才执行)
9.3.2 下载
10 Keil MDK + VSCode开发
10.1 安装Keil Assisant插件
已安装Vscode,并已安装C/C++插件,下面安装Keil Assisant插件
10.2 Keil 助手插件配置
10.3 编辑代码
keil中完成工程创建,环境配置,VSCode打开keil工程
方法一:(VSCode中keil工程)
找到keil项目的uvprojx文件
方法2:(选择uvprojx文件通过Code打开)
10.4 编译下载
11 HAL库开发
11.1 java环境安装
STM32CubeMX 要求java8的运行环境,下载地址:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
双击安装即可
11.2 安装STM32CubeMX
下载地址:https://www.st.com/zh/development-tools/stm32cubemx.html#get-software
双击安装即可
11.3 下载芯片支持包
11.3.1 方法1:在线下载芯片支持包
打开STM32CubeMX
11.3.2 方法2:离线安装芯片支持包
下载地址:https://www.st.com/zh/development-tools/stm32cubemx.html#tools-software
注:离线安装方式只能安装基础包(en.stm32cubef1.zip),无法安装升级包(en.stm32cubef1-v1-8-5.zip)。
把en.stm32cubef1-v1-8-5.zip拷贝到stm32cube的仓库,xxx\STM32Cube\Repository下解压覆盖原先文件即可
11.4 创建HAL库工程
从MCU开启工程
选择芯片STM32F103C8T6
参数设置,引脚设置
Debug参数选择(选择串口)
RCC时钟选择
GPIO设置
工程配置
生成代码
生成的工程目录
11.5 解读自动生成的代码
main函数代码如下:
gpio初始化代码如下:
11.6 HAL库实现LED每隔1s钟闪烁一次
有了gpio初始化程序,还需构建LED驱动,项目根目录下新建Hardware/led目录,Hardware/led目录下创建2个文件led.h和led.c,并在keil中配置。
LED驱动路径添加
添加LED驱动文件
编写代码led.c,led.h,main.c
led.c
#include "led.h"
//点亮LED1函数
void led_on(void)
{//void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET); // 拉低LED1引脚,点亮LED1
}
//熄灭LED1函数
void led_off(void)
{HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET); // 拉高LED1引脚,熄灭LED1
}//翻转LED1状态函数
void led_toggle(void)
{//void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_0);
}
led.h
#ifndef __LED_H__
#define __LED_H__
#include "gpio.h"
void led_init(void);
void led_on(void);
void led_off(void);
void led_toggle(void);
#endif
main.c
#include "led.h"
int main(void)
{HAL_Init(); /* 初始化HAL库 */SystemClock_Config();; /* 设置时钟, 72Mhz */led_init(); /* 初始化LED灯 */MX_GPIO_Init();while(1){ led_on();delay_ms(500);led_off();delay_ms(500);}
}
相关文章:
vscode+keil嵌入式软件开发全流程
vscodekeil嵌入式软件开发全流程 1 安装MinGW-w64 (1) MinGW-w64 是一个用于Windows操作系统的开发工具集,其包含了C语言编译器 GCC(GNU Compiler Collection),官网地址:https://www.mingw-w6…...
GitHub 从入门到精通完全指南(2025版)
以下是GitHub 从入门到精通完全指南,整合优质教程及官方文档,涵盖基础操作、协作开发、高级功能及实战技巧,助你快速掌握 GitHub 全流程。 一、GitHub 入门篇 1. 注册与配置 注册 GitHub 账号 访问 GitHub 官网,点击“Sign Up”填写邮箱、用户名、密码完成注册。建议绑定双…...
总结【过往部分项目经历一(计算机图形学方向)】
总结【过往部分项目经历】 1.蜂窝填充算法2.孔洞识别算法3.扫掠轮廓计算4.二维排料算法5.最大内接圆算法 1.蜂窝填充算法 介绍: 主要从二维六角网格基本算法出发,基于自定义数据结构和拓扑关系,从二维到三维进行拓展,六角网格->六棱柱-&g…...
Flask(补充内容)配置SSL 证书 实现 HTTPS 服务
没有加密的http服务,就像在裸泳,钻到水里便将你看个精光。数据在互联网上传输时,如果未经加密,随时可能被抓包软件抓住,里面的cookie、用户名、密码什么的,它会看得一清二楚,所以,只…...
js逆向分享
某验三代 这玩意大家应该都人手一份了,也没啥好分享的了,需要注意的是,一共五个请求,分别是: "https://apiv6.geetest.com/gettype.php “https://apiv6.geetest.com/get.php” “https://api.geevisit.com/a…...
【cocos creator 3.x】速通3d模型导入, 模型创建,阴影,材质使用,模型贴图绑定
1、右键创建平面,立方体 2、点击场景根节点,shadows勾选enabled3、点击灯光,shadow enabled勾选 4、点击模型,勾选接收阴影,投射阴影(按照需要勾选) 5、材质创建 6、选中节点,找…...
CentOS 中安装 vim
1. 使用 Yum 安装 Vim 如果您的系统可以正常访问互联网,并且已经配置好了正确的 Yum 源,可以直接运行以下命令安装 vim: sudo yum install vim -y 如果默认的 vim 包不可用,可以尝试安装增强版 vim-enhanced: sudo yu…...
安全可靠+操作简捷——安科瑞预付费电表的用户体验升级
安科瑞顾强 在现代化用电场景中,预付费模式凭借其高效性与便捷性,已成为商业、工业及住宅用电管理的优选方案。安科瑞电气推出的DDSY1352/DTSY1352系列预付费电能表,搭配智能管理平台,为用户提供从精准计量、智能控制到数据分析的…...
AI与物联网的深度融合:开启智能生活新时代
在当今数字化时代,人工智能(AI)和物联网(IoT)作为两大前沿技术,正在加速融合,为我们的生活和工作带来前所未有的变革。这种融合不仅提升了设备的智能化水平,还为各行各业带来了新的机…...
赛灵思 XCVU095-2FFVB2104E XilinxFPGA Virtex UltraScale
XCVU095-2FFVB2104I 是 Xilinx(现 AMD)Virtex UltraScale 系列中的高端 FPGA 器件,基于 20nm 工艺,提供卓越的逻辑密度和高速串行 I/O 能力,广泛应用于 400G 网络、ASIC 原型验证及大型数据中心互联 该器件集成 1 176…...
leetcode0212. 单词搜索 II - hard
1 题目:单词搜索 II 官方标定难度:难 给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。 单词必须按照字母顺序,通过 相邻的单元格 内的字母构成ÿ…...
解决 VSCode 中 NVM 配置后无法识别 Node 和 NPM 的问题
在开发中,我们经常需要使用 Node.js 和 NPM 来管理 JavaScript 项目依赖,而 NVM(Node Version Manager)是开发者在本地环境中管理多个 Node.js 版本的得力工具。不过,有时候在 VSCode 中配置完 NVM 后,可能…...
67.评论日记
我的评论本身也就是一种回答 沈阳车展帖子灵异失踪,究竟是谁干的?_哔哩哔哩_bilibili 2025年4月17日17:32:10...
Vscode 插件开发
文章目录 1、使用vscode官方插件生成框架,下载脚手架2、使用脚手架初始化项目,这里我选择的是js3、生成的文件结构如下,重要的就是以下两个文件4、代码5、打包使用6、发布官网地址7、publisher ID undefined provided in the extension manif…...
数据结构(6)
实验步骤: 任务一: 编写算法实现带头结点单链表的就地逆置,即利用原带头结点单链表的结点空间把元素序列 a0,al,……,an-i 逆置为 an-1,……,al, a0 [程序参数设计] 定义了一个带头结点的单链表结构体,并提供了初始化、尾部插入、打印、就地…...
【ROS】恢复行为
【ROS】恢复行为 前言恢复行为(recovery_behavior)概述恢复行为的参数示例:recovery_behavior.yaml 配置文件参数说明与配置原则恢复行为模块的参数设置reset_recovery(重置行为:清除代价地图)参数冲突说明…...
HashMap中put方法的执行流程
在 Java 编程中,HashMap 是一种常用的集合类,它以键值对(Key-Value)的形式存储数据,它具有高效查找、插入和删除的优势。 一.HashMap底层数据结构 JDK 1.7:采用 数组 链表 的结构。JDK 1.8:优…...
基于深度学习并利用时间信息在X射线血管造影中进行冠状动脉血管分割|文献速递-深度学习医疗AI最新文献
Title 题目 Deep learning based coronary vessels segmentation in X-ray angiographyusing temporal information 基于深度学习并利用时间信息在X射线血管造影中进行冠状动脉血管分割 01 文献速递介绍 有创冠状动脉造影(ICA)在冠状动脉疾病&#…...
JVM详解(曼波脑图版)
(✪ω✪)ノ 好哒!曼波会用最可爱的比喻给小白同学讲解JVM,准备好开启奇妙旅程了吗?(๑˃̵ᴗ˂̵)و 📌 思维导图 ━━━━━━━━━━━━━━━━━━━ 🍎 JVM是什么?(苹果式比…...
深度理解指针之例题
文章目录 前言题目分析与讲解涉及知识点 前言 对指针有一定了解后,讲一下一道初学者的易错题 题目分析与讲解 先定义一个数组跟一个指针变量 然后把数组名赋值给指针变量————也就是把首地址传到pulPtr中 重点是分析这一句: *(pulPtr…...
Electricity Market Optimization(VI) - 机组组合问题的 GAMS 求解
根据之前的博客,我们考虑机组的启动成本只讨论考虑以下几种约束的机组组合问题: 功率平衡约束火电机组启停约束和爬坡约束备用容量约束 min ∑ t 1 T ( C t g e n C t u c C t curt ) s.t. C t g e n ∑ i ∈ [ G ] c i ( p i , t c ) C t u c …...
【Leetcode 每日一题】2176. 统计数组中相等且可以被整除的数对
问题背景 给你一个下标从 0 0 0 开始长度为 n n n 的整数数组 n u m s nums nums 和一个整数 k k k,请你返回满足 0 ≤ i < j < n 0 \le i < j < n 0≤i<j<n, n u m s [ i ] n u m s [ j ] nums[i] nums[j] nums[i]nums[j] 且…...
赛灵思 XCVU3P‑2FFVC1517I XilinxFPGA Virtex UltraScale+
XCVU3P‑2FFVC1517I AMD Xilinx Virtex UltraScale 系列中的高端 FPGA,基于 TSMC 16 nm FinFET 工艺及第三代 3D IC 堆栈互连技术(SSI),旨在为数据中心互连、高性能计算、网络加速和信号处理等苛刻应用提供领先的性能‑功耗比。…...
Rust 与 JavaScript 的 WebAssembly 互操作指南
1. Rust 中导入和导出 JS 函数 导入 JS 函数 Rust 代码中可以通过 extern 块导入 JavaScript 函数: #[link(wasm_import_module "mod")] // 指定 JS 模块名 extern { fn foo(); // 声明导入的 JS 函数 }如果没有指定 wasm_import_module,默…...
2025年特种设备安全管理 A 证考试全解析
对于想要获取特种设备安全管理 A 证的人员来说,了解考试的具体内容与形式是备考的关键。下面将为大家全面解析特种设备安全管理 A 证考试,助力大家顺利备考,成功取证。 特种设备安全管理 A 证考试内容丰富,涵盖多个重要领域。特种…...
TOA与AOA联合定位的高精度算法,三维、4个基站的情况,MATLAB例程,附完整代码
本代码实现了三维空间内目标的高精度定位,结合到达角(AOA) 和到达时间(TOA) 两种测量方法,通过4个基站的协同观测,利用最小二乘法解算目标位置。代码支持噪声模拟、误差分析及三维可视化,适用于无人机导航、室内定位等场景。订阅专栏后可获得完整代码 文章目录 运行结果…...
java 设计模式之策略模式
简介 策略模式:策略模式可以定制目标对象的行为,它尅通过传入不同的策略实现,来配置目标对象的行为。使用策略模式,就是为了定制目标对象在某个关键点的行为。 策略模式中的角色: 上下文类:持有一个策略…...
BH1750光照传感器---附代码
目录 BH1750简介BH1750指令集BH1750工作流程 BH1750简介 VCC-->电源正; ADDR-->地址端口; GND-->电源负; PA5-->SDA-->I2C数据线; PA3-->SCL-->I2C时钟线; DVI-->I2C端口参考电压;…...
docker harbor私有仓库登录报错
docker harbor私有仓库登录报错如下: [rootsrv-1 ~]# docker login -u user1 -p pwd1 harbor.chinacloudapi.cn WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get "https://harbor.chinacloudapi.…...
浔川AI翻译v7.0更新预告
亲爱的浔川AI翻译用户: 感谢您一直以来的支持!浔川AI翻译自推出以来,已迭代6个版本,其中**v2.0和v4.0因技术问题(翻译结果显示异常、注册失败、密码找回功能失效等)**被迫下架。我们深知这些问题影响了您…...
Linux网络编程实战:从字节序到UDP协议栈的深度解析与开发指南
网路通信的三大要素:协议,端口和IP 知识点1【字节序】 多字节在主机中的存放数据 把多字节看成一个整体存储的顺序。 为什么我们在文件中没有这个概念呢? 因为文件是字节流(流指针),流是以一个字节为操…...
Java基础知识面试题(已整理Java面试宝典pdf版)
什么是Java Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论…...
速盾:高防CDN访问多了会影响源站吗?
在当今数字化时代,内容分发网络(CDN)已经成为保障网站性能和用户体验的重要工具。特别是高防CDN,它不仅能够加速内容传输,还能有效抵御各种类型的网络攻击,确保业务的连续性和稳定性。然而,一些…...
Python(19)Python并发编程:深入解析多线程与多进程的差异及锁机制实战
目录 一、背景:Python并发编程的必要性二、核心概念对比2.1 技术特性对比表2.2 性能测试对比(4核CPU) 三、线程与进程的创建实战3.1 多线程基础模板3.2 多进程进阶模板 四、锁机制深度解析4.1 资源竞争问题重现4.2 线程锁解决方案4.3 进程锁的…...
赛灵思 XCVU440-2FLGA2892E XilinxFPGA Virtex UltraScale
XCVU440-2FLGA2892E 属于 Xilinx Virtex UltraScale 系列,是面向高端应用的旗舰 FPGA 器件。该系列产品以出色的高并行处理能力、丰富的逻辑资源和高速互联能力闻名,广泛用于 高性能计算、数字信号处理等对计算能力和带宽要求极高的场景。采用先进的 20n…...
UE5 相机裁剪面
UE5无法单独修改相机的裁剪面,不论是场景相机还是游戏相机都不可以 只能在配置里统一修改 项目设置里直接搜clip...
uniapp自定义底部导航栏,解决下拉时候顶部空白的问题
一、背景 最近使用uniapp开发微信小程序,因为使用了自定义的顶部导航栏,所以在ios平台上(Android未测试)测试的时候,下拉的时候会出现整个页面下拉并且顶部留下大片空白的问题 二、任务:解决这个问题 经…...
vue2 element-ui 中 el-radio 单选框点击事件失效问题
前情提要 点进这篇文章的小伙伴,应该和博主一样,都是遇到了这种单选框可点击取消的需求。也就只有这种不同寻常的需求,才能让我们发现element框架的缺陷点,话不多说,下面博主来提供一个解决思路。 click为什么无法触发…...
yolov8复现
Yolov8的复现流程主要包含环境配置、下载源码和验证环境三大步骤: 环境配置 查看电脑状况:通过任务管理器查看电脑是否有独立显卡(NVIDIA卡)。若有,后续可安装GPU版本的pytorch以加速训练;若没有࿰…...
提高Qt工作线程的运行速度
1. 使用线程池(QThreadPool)替代单一线程 做过,但是当时没想到。。。 目的:减少线程创建和销毁的开销,复用线程资源。 实现步骤: 创建自定义任务类:继承QRunnable,实现run()方法。…...
ZStack文档DevOps平台建设实践
(一)前言 对于软件产品而言,文档是不可或缺的一环。文档能帮助用户快速了解并使用软件,包括不限于特性概览、用户手册、API手册、安装部署以及场景实践教程等。由于软件与文档紧密耦合,面对业务的瞬息万变以及软件的飞…...
网络规划设计之广域网结构设计,6种架构模式对比
在数字化转型的浪潮中,网络基础设施的设计理念正在发生深刻变革。传统的基于点线拓扑的研究方法已无法满足现代复杂网络的需求,取而代之的是更具系统性的网络结构设计理念。本文将深入解析网络结构的定义特征,并重点剖析六种主流广域网架构的…...
FortiAI 重塑Fortinet Security Fabric全面智能化进阶
专注推动网络与安全融合的全球性综合网络安全解决方案供应商 Fortinet(NASDAQ:FTNT),近日宣布,旗下 Fortinet Security Fabric 安全平台成功嵌入了 FortiAI 关键创新功能。这一举措将有效增强用户对各类新兴威胁的防护…...
uniapp h5接入地图选点组件
uniapp h5接入地图选点组件 1、申请腾讯地图key2、代码接入2.1入口页面 (pages/map/map)templatescript 2.2选点页面(pages/map/mapselect/mapselect)templatescript 该内容只针对uniapp 打包h5接入地图选点组件做详细说明&#x…...
Openfein实现远程调用的方法(实操)
文章目录 环境准备一、URL中接收参数二、接收一个参数三、接收多个参数四、传递对象五、传递JSON格式数据 环境准备 下面的配置,服务调用方加入即可。 依赖导入: <!-- openfeign依赖--><dependency><groupId>org.springframe…...
Matter如何终结智能家居生态割据,重构你的居住体验?
现阶段,Zigbee、Z-Wave、Thread、Wi-Fi与蓝牙等多种通信协议在智能家居行业中已得到广泛应用,但协议间互不兼容的通信问题仍在凸显。由于各协议自成体系、彼此割据,智能家居市场被迫催生出大量桥接器、集线器及兼容性软件以在不同生态的设备间…...
Thin-Agent服务(TAS)概述
### **Thin-Agent服务(TAS)概述** **Thin-Agent服务(TAS)** 是一种轻量级监控服务,通过 **BMC/IPMI**(基板管理控制器/智能平台管理接口)收集**硬件和操作系统特定数据**,为系统管…...
2025.4.17学习日记 初识JavaScript 以及Java和JavaScript有什么区别
Java 和 JavaScript 虽然名字相似,但实际上是两种不同的编程语言。 1. 语言背景和设计目的 Java:由 Sun Microsystems(现被 Oracle 收购)在 1995 年推出。设计初衷是为了实现 “一次编写,到处运行(Write O…...
python学习—合并多个word文档
系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停,游戏抽签抽奖 python学习—循环语句-控制流 python学习—合并多个Excel工作簿表格文件 pytho…...
01、单片机简介
单片机简介 1、什么是单片机2、STM32F103ZET6介绍2.1、参数的含义2.2、存储器映射 3、外设寄存器介绍 1、什么是单片机 单片机(Single-Chip Microcomputer)是一种微型计算机,是一种集成电路芯片。把具有数据处理能力的中央处理器CPU、随机存储器RAM、闪存flash、多…...