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

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 &#xff08;1&#xff09; MinGW-w64 是一个用于Windows操作系统的开发工具集&#xff0c;其包含了C语言编译器 GCC&#xff08;GNU Compiler Collection&#xff09;&#xff0c;官网地址&#xff1a;https://www.mingw-w6…...

GitHub 从入门到精通完全指南(2025版)

以下是GitHub 从入门到精通完全指南,整合优质教程及官方文档,涵盖基础操作、协作开发、高级功能及实战技巧,助你快速掌握 GitHub 全流程。 一、GitHub 入门篇 1. 注册与配置 注册 GitHub 账号 访问 GitHub 官网,点击“Sign Up”填写邮箱、用户名、密码完成注册。建议绑定双…...

总结【过往部分项目经历一(计算机图形学方向)】

总结【过往部分项目经历】 1.蜂窝填充算法2.孔洞识别算法3.扫掠轮廓计算4.二维排料算法5.最大内接圆算法 1.蜂窝填充算法 介绍: 主要从二维六角网格基本算法出发&#xff0c;基于自定义数据结构和拓扑关系&#xff0c;从二维到三维进行拓展&#xff0c;六角网格->六棱柱-&g…...

Flask(补充内容)配置SSL 证书 实现 HTTPS 服务

没有加密的http服务&#xff0c;就像在裸泳&#xff0c;钻到水里便将你看个精光。数据在互联网上传输时&#xff0c;如果未经加密&#xff0c;随时可能被抓包软件抓住&#xff0c;里面的cookie、用户名、密码什么的&#xff0c;它会看得一清二楚&#xff0c;所以&#xff0c;只…...

js逆向分享

某验三代 这玩意大家应该都人手一份了&#xff0c;也没啥好分享的了&#xff0c;需要注意的是&#xff0c;一共五个请求&#xff0c;分别是&#xff1a; "https://apiv6.geetest.com/gettype.php “https://apiv6.geetest.com/get.php” “https://api.geevisit.com/a…...

【cocos creator 3.x】速通3d模型导入, 模型创建,阴影,材质使用,模型贴图绑定

1、右键创建平面&#xff0c;立方体 2、点击场景根节点&#xff0c;shadows勾选enabled3、点击灯光&#xff0c;shadow enabled勾选 4、点击模型&#xff0c;勾选接收阴影&#xff0c;投射阴影&#xff08;按照需要勾选&#xff09; 5、材质创建 6、选中节点&#xff0c;找…...

CentOS 中安装 vim

1. 使用 Yum 安装 Vim 如果您的系统可以正常访问互联网&#xff0c;并且已经配置好了正确的 Yum 源&#xff0c;可以直接运行以下命令安装 vim&#xff1a; sudo yum install vim -y 如果默认的 vim 包不可用&#xff0c;可以尝试安装增强版 vim-enhanced&#xff1a; sudo yu…...

安全可靠+操作简捷——安科瑞预付费电表的用户体验升级

安科瑞顾强 在现代化用电场景中&#xff0c;预付费模式凭借其高效性与便捷性&#xff0c;已成为商业、工业及住宅用电管理的优选方案。安科瑞电气推出的DDSY1352/DTSY1352系列预付费电能表&#xff0c;搭配智能管理平台&#xff0c;为用户提供从精准计量、智能控制到数据分析的…...

AI与物联网的深度融合:开启智能生活新时代

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和物联网&#xff08;IoT&#xff09;作为两大前沿技术&#xff0c;正在加速融合&#xff0c;为我们的生活和工作带来前所未有的变革。这种融合不仅提升了设备的智能化水平&#xff0c;还为各行各业带来了新的机…...

赛灵思 XCVU095-2FFVB2104E XilinxFPGA Virtex UltraScale

XCVU095-2FFVB2104I 是 Xilinx&#xff08;现 AMD&#xff09;Virtex UltraScale 系列中的高端 FPGA 器件&#xff0c;基于 20nm 工艺&#xff0c;提供卓越的逻辑密度和高速串行 I/O 能力&#xff0c;广泛应用于 400G 网络、ASIC 原型验证及大型数据中心互联 该器件集成 1 176…...

leetcode0212. 单词搜索 II - hard

1 题目&#xff1a;单词搜索 II 官方标定难度&#xff1a;难 给定一个 m x n 二维字符网格 board 和一个单词&#xff08;字符串&#xff09;列表 words&#xff0c; 返回所有二维网格上的单词 。 单词必须按照字母顺序&#xff0c;通过 相邻的单元格 内的字母构成&#xff…...

解决 VSCode 中 NVM 配置后无法识别 Node 和 NPM 的问题

在开发中&#xff0c;我们经常需要使用 Node.js 和 NPM 来管理 JavaScript 项目依赖&#xff0c;而 NVM&#xff08;Node Version Manager&#xff09;是开发者在本地环境中管理多个 Node.js 版本的得力工具。不过&#xff0c;有时候在 VSCode 中配置完 NVM 后&#xff0c;可能…...

67.评论日记

我的评论本身也就是一种回答 沈阳车展帖子灵异失踪&#xff0c;究竟是谁干的&#xff1f;_哔哩哔哩_bilibili 2025年4月17日17:32:10...

Vscode 插件开发

文章目录 1、使用vscode官方插件生成框架&#xff0c;下载脚手架2、使用脚手架初始化项目&#xff0c;这里我选择的是js3、生成的文件结构如下&#xff0c;重要的就是以下两个文件4、代码5、打包使用6、发布官网地址7、publisher ID undefined provided in the extension manif…...

数据结构(6)

实验步骤&#xff1a; 任务一&#xff1a; 编写算法实现带头结点单链表的就地逆置,即利用原带头结点单链表的结点空间把元素序列 a0,al,……,an-i 逆置为 an-1,……,al, a0 [程序参数设计] 定义了一个带头结点的单链表结构体&#xff0c;并提供了初始化、尾部插入、打印、就地…...

【ROS】恢复行为

【ROS】恢复行为 前言恢复行为&#xff08;recovery_behavior&#xff09;概述恢复行为的参数示例&#xff1a;recovery_behavior.yaml 配置文件参数说明与配置原则恢复行为模块的参数设置reset_recovery&#xff08;重置行为&#xff1a;清除代价地图&#xff09;参数冲突说明…...

HashMap中put方法的执行流程

在 Java 编程中&#xff0c;HashMap 是一种常用的集合类&#xff0c;它以键值对&#xff08;Key-Value&#xff09;的形式存储数据&#xff0c;它具有高效查找、插入和删除的优势。 一.HashMap底层数据结构 JDK 1.7&#xff1a;采用 数组 链表 的结构。JDK 1.8&#xff1a;优…...

基于深度学习并利用时间信息在X射线血管造影中进行冠状动脉血管分割|文献速递-深度学习医疗AI最新文献

Title 题目 Deep learning based coronary vessels segmentation in X-ray angiographyusing temporal information 基于深度学习并利用时间信息在X射线血管造影中进行冠状动脉血管分割 01 文献速递介绍 有创冠状动脉造影&#xff08;ICA&#xff09;在冠状动脉疾病&#…...

JVM详解(曼波脑图版)

(✪ω✪)&#xff89; 好哒&#xff01;曼波会用最可爱的比喻给小白同学讲解JVM&#xff0c;准备好开启奇妙旅程了吗&#xff1f;(๑˃̵ᴗ˂̵)و &#x1f4cc; 思维导图 ━━━━━━━━━━━━━━━━━━━ &#x1f34e; JVM是什么&#xff1f;&#xff08;苹果式比…...

深度理解指针之例题

文章目录 前言题目分析与讲解涉及知识点 前言 对指针有一定了解后&#xff0c;讲一下一道初学者的易错题 题目分析与讲解 先定义一个数组跟一个指针变量 然后把数组名赋值给指针变量————也就是把首地址传到pulPtr中 重点是分析这一句&#xff1a; *&#xff08;pulPtr…...

Electricity Market Optimization(VI) - 机组组合问题的 GAMS 求解

根据之前的博客&#xff0c;我们考虑机组的启动成本只讨论考虑以下几种约束的机组组合问题&#xff1a; 功率平衡约束火电机组启停约束和爬坡约束备用容量约束 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&#xff0c;请你返回满足 0 ≤ i < j < n 0 \le i < j < n 0≤i<j<n&#xff0c; 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&#xff0c;基于 TSMC 16 nm FinFET 工艺及第三代 3D IC 堆栈互连技术&#xff08;SSI&#xff09;&#xff0c;旨在为数据中心互连、高性能计算、网络加速和信号处理等苛刻应用提供领先的性能‑功耗比。…...

Rust 与 JavaScript 的 WebAssembly 互操作指南

1. Rust 中导入和导出 JS 函数 导入 JS 函数 Rust 代码中可以通过 extern 块导入 JavaScript 函数&#xff1a; #[link(wasm_import_module "mod")] // 指定 JS 模块名 extern { fn foo(); // 声明导入的 JS 函数 }如果没有指定 wasm_import_module&#xff0c;默…...

2025年特种设备安全管理 A 证考试全解析

对于想要获取特种设备安全管理 A 证的人员来说&#xff0c;了解考试的具体内容与形式是备考的关键。下面将为大家全面解析特种设备安全管理 A 证考试&#xff0c;助力大家顺利备考&#xff0c;成功取证。 特种设备安全管理 A 证考试内容丰富&#xff0c;涵盖多个重要领域。特种…...

TOA与AOA联合定位的高精度算法,三维、4个基站的情况,MATLAB例程,附完整代码

本代码实现了三维空间内目标的高精度定位,结合到达角(AOA) 和到达时间(TOA) 两种测量方法,通过4个基站的协同观测,利用最小二乘法解算目标位置。代码支持噪声模拟、误差分析及三维可视化,适用于无人机导航、室内定位等场景。订阅专栏后可获得完整代码 文章目录 运行结果…...

java 设计模式之策略模式

简介 策略模式&#xff1a;策略模式可以定制目标对象的行为&#xff0c;它尅通过传入不同的策略实现&#xff0c;来配置目标对象的行为。使用策略模式&#xff0c;就是为了定制目标对象在某个关键点的行为。 策略模式中的角色&#xff1a; 上下文类&#xff1a;持有一个策略…...

BH1750光照传感器---附代码

目录 BH1750简介BH1750指令集BH1750工作流程 BH1750简介 VCC-->电源正&#xff1b; ADDR-->地址端口&#xff1b; GND-->电源负&#xff1b; PA5-->SDA-->I2C数据线&#xff1b; PA3-->SCL-->I2C时钟线&#xff1b; DVI-->I2C端口参考电压&#xff1b…...

docker harbor私有仓库登录报错

docker harbor私有仓库登录报错如下&#xff1a; [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翻译用户&#xff1a; 感谢您一直以来的支持&#xff01;浔川AI翻译自推出以来&#xff0c;已迭代6个版本&#xff0c;其中**v2.0和v4.0因技术问题&#xff08;翻译结果显示异常、注册失败、密码找回功能失效等&#xff09;**被迫下架。我们深知这些问题影响了您…...

Linux网络编程实战:从字节序到UDP协议栈的深度解析与开发指南

网路通信的三大要素&#xff1a;协议&#xff0c;端口和IP 知识点1【字节序】 多字节在主机中的存放数据 把多字节看成一个整体存储的顺序。 为什么我们在文件中没有这个概念呢&#xff1f; 因为文件是字节流&#xff08;流指针&#xff09;&#xff0c;流是以一个字节为操…...

Java基础知识面试题(已整理Java面试宝典pdf版)

什么是Java Java是一门面向对象编程语言&#xff0c;不仅吸收了C语言的各种优点&#xff0c;还摒弃了C里难以理解的多继承、指针等概念&#xff0c;因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表&#xff0c;极好地实现了面向对象理论…...

速盾:高防CDN访问多了会影响源站吗?

在当今数字化时代&#xff0c;内容分发网络&#xff08;CDN&#xff09;已经成为保障网站性能和用户体验的重要工具。特别是高防CDN&#xff0c;它不仅能够加速内容传输&#xff0c;还能有效抵御各种类型的网络攻击&#xff0c;确保业务的连续性和稳定性。然而&#xff0c;一些…...

Python(19)Python并发编程:深入解析多线程与多进程的差异及锁机制实战

目录 一、背景&#xff1a;Python并发编程的必要性二、核心概念对比2.1 技术特性对比表2.2 性能测试对比&#xff08;4核CPU&#xff09; 三、线程与进程的创建实战3.1 多线程基础模板3.2 多进程进阶模板 四、锁机制深度解析4.1 资源竞争问题重现4.2 线程锁解决方案4.3 进程锁的…...

赛灵思 XCVU440-2FLGA2892E XilinxFPGA Virtex UltraScale

XCVU440-2FLGA2892E 属于 Xilinx Virtex UltraScale 系列&#xff0c;是面向高端应用的旗舰 FPGA 器件。该系列产品以出色的高并行处理能力、丰富的逻辑资源和高速互联能力闻名&#xff0c;广泛用于 高性能计算、数字信号处理等对计算能力和带宽要求极高的场景。采用先进的 20n…...

UE5 相机裁剪面

UE5无法单独修改相机的裁剪面&#xff0c;不论是场景相机还是游戏相机都不可以 只能在配置里统一修改 项目设置里直接搜clip...

uniapp自定义底部导航栏,解决下拉时候顶部空白的问题

一、背景 最近使用uniapp开发微信小程序&#xff0c;因为使用了自定义的顶部导航栏&#xff0c;所以在ios平台上&#xff08;Android未测试&#xff09;测试的时候&#xff0c;下拉的时候会出现整个页面下拉并且顶部留下大片空白的问题 二、任务&#xff1a;解决这个问题 经…...

vue2 element-ui 中 el-radio 单选框点击事件失效问题

前情提要 点进这篇文章的小伙伴&#xff0c;应该和博主一样&#xff0c;都是遇到了这种单选框可点击取消的需求。也就只有这种不同寻常的需求&#xff0c;才能让我们发现element框架的缺陷点&#xff0c;话不多说&#xff0c;下面博主来提供一个解决思路。 click为什么无法触发…...

yolov8复现

Yolov8的复现流程主要包含环境配置、下载源码和验证环境三大步骤&#xff1a; 环境配置 查看电脑状况&#xff1a;通过任务管理器查看电脑是否有独立显卡&#xff08;NVIDIA卡&#xff09;。若有&#xff0c;后续可安装GPU版本的pytorch以加速训练&#xff1b;若没有&#xff0…...

提高Qt工作线程的运行速度

1. 使用线程池&#xff08;QThreadPool&#xff09;替代单一线程 做过&#xff0c;但是当时没想到。。。 目的&#xff1a;减少线程创建和销毁的开销&#xff0c;复用线程资源。 实现步骤&#xff1a; 创建自定义任务类&#xff1a;继承QRunnable&#xff0c;实现run()方法。…...

ZStack文档DevOps平台建设实践

&#xff08;一&#xff09;前言 对于软件产品而言&#xff0c;文档是不可或缺的一环。文档能帮助用户快速了解并使用软件&#xff0c;包括不限于特性概览、用户手册、API手册、安装部署以及场景实践教程等。由于软件与文档紧密耦合&#xff0c;面对业务的瞬息万变以及软件的飞…...

网络规划设计之广域网结构设计,6种架构模式对比

在数字化转型的浪潮中&#xff0c;网络基础设施的设计理念正在发生深刻变革。传统的基于点线拓扑的研究方法已无法满足现代复杂网络的需求&#xff0c;取而代之的是更具系统性的网络结构设计理念。本文将深入解析网络结构的定义特征&#xff0c;并重点剖析六种主流广域网架构的…...

FortiAI 重塑Fortinet Security Fabric全面智能化进阶

专注推动网络与安全融合的全球性综合网络安全解决方案供应商 Fortinet&#xff08;NASDAQ&#xff1a;FTNT&#xff09;&#xff0c;近日宣布&#xff0c;旗下 Fortinet Security Fabric 安全平台成功嵌入了 FortiAI 关键创新功能。这一举措将有效增强用户对各类新兴威胁的防护…...

uniapp h5接入地图选点组件

uniapp h5接入地图选点组件 1、申请腾讯地图key2、代码接入2.1入口页面 &#xff08;pages/map/map&#xff09;templatescript 2.2选点页面&#xff08;pages/map/mapselect/mapselect&#xff09;templatescript 该内容只针对uniapp 打包h5接入地图选点组件做详细说明&#x…...

Openfein实现远程调用的方法(实操)

文章目录 环境准备一、URL中接收参数二、接收一个参数三、接收多个参数四、传递对象五、传递JSON格式数据 环境准备 下面的配置&#xff0c;服务调用方加入即可。 依赖导入&#xff1a; <!-- openfeign依赖--><dependency><groupId>org.springframe…...

Matter如何终结智能家居生态割据,重构你的居住体验?

现阶段&#xff0c;Zigbee、Z-Wave、Thread、Wi-Fi与蓝牙等多种通信协议在智能家居行业中已得到广泛应用&#xff0c;但协议间互不兼容的通信问题仍在凸显。由于各协议自成体系、彼此割据&#xff0c;智能家居市场被迫催生出大量桥接器、集线器及兼容性软件以在不同生态的设备间…...

Thin-Agent服务(TAS)概述

### **Thin-Agent服务&#xff08;TAS&#xff09;概述** **Thin-Agent服务&#xff08;TAS&#xff09;** 是一种轻量级监控服务&#xff0c;通过 **BMC/IPMI**&#xff08;基板管理控制器/智能平台管理接口&#xff09;收集**硬件和操作系统特定数据**&#xff0c;为系统管…...

2025.4.17学习日记 初识JavaScript 以及Java和JavaScript有什么区别

Java 和 JavaScript 虽然名字相似&#xff0c;但实际上是两种不同的编程语言。 1. 语言背景和设计目的 Java&#xff1a;由 Sun Microsystems&#xff08;现被 Oracle 收购&#xff09;在 1995 年推出。设计初衷是为了实现 “一次编写&#xff0c;到处运行&#xff08;Write O…...

python学习—合并多个word文档

系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停&#xff0c;游戏抽签抽奖 python学习—循环语句-控制流 python学习—合并多个Excel工作簿表格文件 pytho…...

01、单片机简介

单片机简介 1、什么是单片机2、STM32F103ZET6介绍2.1、参数的含义2.2、存储器映射 3、外设寄存器介绍 1、什么是单片机 单片机(Single-Chip Microcomputer)是一种微型计算机&#xff0c;是一种集成电路芯片。把具有数据处理能力的中央处理器CPU、随机存储器RAM、闪存flash、多…...