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

VSCode下EIDE插件开发STM32

VSCode下STM32开发环境搭建

本STM32教程使用vscode的EIDE插件的开发环境,完全免费,有管理代码文件的界面,不需要其它IDE
视频教程见本人的

VSCode+EIDE开发STM32

安装EIDE插件

Embedded IDE 嵌入式IDE

这个插件可以帮我们管理代码文件,配置工具链(什么是工具链见下文)等。

这里先安装此插件,此插件使用,工具链安装等,后面配合示例工程讲解。
在这里插入图片描述在这里插入图片描述

EIDE网站,可以查看此插件的更新日志。

这是什么? | Embedded IDE For VSCode

什么是工具链

简单的说就是把源文件(也就是xx.c xxx.cpp等)变成可执行文件的东西。

在这里插入图片描述

开发不同的东西需要不同的工具链,

比如在windows上,源文件最后会变成.exe
用Visual Studio写.cpp用的就是MSVC 编译器工具集(也称为工具链或“生成工具”)
用VSCode写.cpp,教程都会让你下载mingw

而开发单片机,也需要对应其内核的工具链。

stm32是arm的内核,所以需要arm相关的工具链。
keil就是armcc v5 v6的工具链(收费)。
本教程使用的是免费gnu arm embedded toolchainGNU Arm 嵌入式工具链

这是它的网址Arm GNU Toolchain Downloads – Arm Developer,如果你想可以去下载最新版,我这里用EIDE安装。
在这里插入图片描述

使用EIDE安装gcc工具链

点击安装实用工具,安装gcc_arm工具链

在这里插入图片描述

它会开始下载安装工具链

在这里插入图片描述

如果使用EIDE安装工具链,它的安装路径如下
C:\Users\用户名.eide\tools
在这里插入图片描述

假如你本来就有,可以直接设置安装位置。

比如你自己下载了工具链,或者安装了stm32的工具包(STM32 VS Code Extension 插件让你安装的那个),或者安装了STM32CubeIDE,就直接找到gcc_arm工具链填入其路径就行。

点击设置工具链,设置 GNU Arm Embedded Toolchain
在这里插入图片描述

示例工程

创建一个示例工程,进一步说明。

示例工程实现LED闪烁。

用CubeMX生成工程代码

打开stm32cubeMX,打开选择器,选择你开发板对应的芯片型号。
进入配置界面,设置LED对应引脚为输出模式,通常是PC13因为这个引脚没有太多其它功能。
顺便设置个标签,LED0,便于后面写代码。
工程名称就叫demo1吧。
只复制必要的库文件,为每个外设生成一对‘.c/.h’文件初始化外设等不再赘述。
在这里插入图片描述

工具链/IDE选择
这里的STM32CubeIDE CMake Makefile 使用的都是arm-gcc的工具链!
不过CMake Makefile产生的工程需要自己配置项目资源,CubeIDE产生的工程导入即可。
这里先选择CMake或者Makefile自己配置一下项目,STM32CubeIDE导入的教程见下文。

在这里插入图片描述

生成的工程文件夹
在这里插入图片描述

EIDE插件的使用

新建空项目

在这里插入图片描述

STM32选择Cortex-M项目,项目名称建议和之前的工程名称保持一致。

在这里插入图片描述
在这里插入图片描述

项目保存位置为工程文件夹的位置(而不是工程文件夹内)

在这里插入图片描述

项目文件夹已经存在的警告选是

在这里插入图片描述

切换至工作区
在这里插入图片描述

VSCode切换到了工作区

在这里插入图片描述

编译工程

添加项目资源
添加.c文件

添加普通文件夹,它具有递归查找能力,能往下查找到你的代码文件。

在这里插入图片描述

添加包含.c代码的文件夹。

在这里插入图片描述
.c文件添加完毕
在这里插入图片描述

添加启动文件startup.s

项目资源添加一个虚拟文件夹
在这里插入图片描述

添加启动文件startup.s,选择文件的时候选择any就可以看到所有文件。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
启动文件.s添加完毕
在这里插入图片描述

顺便说一下
普通文件夹要在工程文件夹下面添加。
当然如果你愿意,可以全部使用虚拟文件夹去添加所有源文件。
只要将工程涉及到源文件全部添加了就可以。

构建配置
选择CPU类型

选择CPU类型,根据你的单片机选择,STM32F4选M4,F1选M3

在这里插入图片描述

设置链接脚本路径

设置链接脚本路径,就是CubeMX生成的flash.ld文件。
在这里插入图片描述

它就在工程文件夹那层里,把它文件名填上去就行
在这里插入图片描述

项目属性

就是,头文件路径、库文件路径、要预处理的宏定义这些。

如果搞不清楚CubeMX生成的代码的相关配置,可以查看CubeMX生成的CMake或makefile。

在这里插入图片描述

这里说一下,并没有使用CMake,打开它只是为了确认要填入的信息。

添加头文件目录

就是所有.h所在的目录。
在这里插入图片描述
包含目录添加完毕
在这里插入图片描述

添加预处理宏定义

代码文件里有类似这样的代码,这些编译预处理命令需要添加预处理宏定义配合编译。

#if defined (USE_HAL_DRIVER)//如果定义了它
//...
//做什么什么
//...
#endif /* USE_HAL_DRIVER */

在这里插入图片描述
预处理宏定义添加完毕
在这里插入图片描述

当然,如果你自己建立了代码文件夹也需要添加相关的配置。

编译

都配置好了,然后就能编译了

随便打开一个代码文件,右上角既可以找到编译。
在这里插入图片描述

编译完毕,没有错误没有警告。

在这里插入图片描述

生成的可执行文件(待下载到单片机上)
在这里插入图片描述

如何烧录(下载)

安装下载器对应的工具。

一般大家搞stm32都是用stlink因为便宜,如果是jlink就下载jlink的。

在这里插入图片描述

安装后它也会安装STLINk的驱动等。
在这里插入图片描述

烧录配置,选择烧录工具

在这里插入图片描述

添加工程代码

添加让LED0闪烁的代码,并重新编译。

    HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);HAL_Delay(500);HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);HAL_Delay(500);
烧录

点击右上角的下载按钮即可下载。

在这里插入图片描述

提示:请正确连接你的下载器和开发板。

烧录完毕

在这里插入图片描述

LED0已经开始闪烁。

在这里插入图片描述

调试

相关解释请参考

cortex-debug 用法 - 博客 - Embedded IDE Forum

安装调试用的插件和工具
安装Cortex Debug

安装VSCode插件 Cortex Debug,调试需要。

在这里插入图片描述

安装OpenOCD

OpenOCD是一个免费的开源软件,用于调试和编程嵌入式设备。

可以直接在EIDE这里下载。

在这里插入图片描述

假如你有OpenOCD就不用重新下载了,之后写路径的时候改一下就行。
比如你自己下载了OpenOCD,或者安装了stm32的工具包(STM32 VS Code Extension 插件让你安装的那个),就直接找到填入其路径就行。
在这里插入图片描述

如果使用EIED安装OpenOCD,它的安装位置如下,安装位置之后要用。
C:\Users\用户名.eide\tools
在这里插入图片描述

创建launch.json文件

launch.json 是 Visual Studio Code 中用于配置调试器的文件。

launch.json的创建

切换到代码文件,点运行和调试。创建launch.json文件,在工程中。
在这里插入图片描述
调试器选择Cortex Debug
在这里插入图片描述
自动生成代码的时候选择OpenOCD
在这里插入图片描述

这是自动生成的launch.json还需要修改
在这里插入图片描述

填写可执行文件路径

调试要用到可执行文件.elf,它在build/Debug下。
executable 这里填入

            //elf文件看当前工程名称或是看build文件夹下的elf文件名称"executable": "build/Debug/demo1.elf",

在这里插入图片描述

填写配置文件路径

找到你OpenOCD的安装位置
configFiles这里如下填写

"configFiles": [//使用ST-LINK,路径根据你的openOCD的安装位置修改,stlink版本根据你的下载器修改"C:/Users/CaiYunWei/.eide/tools/openocd_7a1adfbec_mingw32/share/openocd/scripts/interface/stlink-v2-1.cfg",//使用stm32f?,路径根据你的openOCD的安装位置修改,stm32f?根据你的芯片修改"C:/Users/CaiYunWei/.eide/tools/openocd_7a1adfbec_mingw32/share/openocd/scripts/target/stm32f4x.cfg"],

stlink .cfg文件路径如下,使用哪个根据你的下载器修改。
C:\Users\你的用户名.eide\tools\openocd_7a1adfbec_mingw32\share\openocd\scripts\interface
在这里插入图片描述
stm32 .cfg文件路径如下,使用哪个根据你的芯片修改。
C:\Users\你的用户名.eide\tools\openocd_7a1adfbec_mingw32\share\openocd\scripts\interface\target
在这里插入图片描述

参考的launch.json文件
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"cwd": "${workspaceRoot}",//.elf可执行文件路径"executable": "build/Debug/demo1.elf","name": "Debug with OpenOCD","request": "launch","type": "cortex-debug","servertype": "openocd","configFiles": [//使用ST-LINK,路径根据你的openOCD的安装位置修改,stlink版本根据你的下载器修改"C:/Users/CaiYunWei/.eide/tools/openocd_7a1adfbec_mingw32/share/openocd/scripts/interface/stlink-v2-1.cfg",//使用stm32f?,路径根据你的openOCD的安装位置修改,stm32f?根据你的芯片修改"C:/Users/CaiYunWei/.eide/tools/openocd_7a1adfbec_mingw32/share/openocd/scripts/target/stm32f4x.cfg"],"searchDir": [],"runToEntryPoint": "main","showDevDebugOutput": "none"}]
}

生成的jlink相关代码用不到,可以删掉。

开始调试

搞好之后保存launch.json文件,选择设置好的启动项Debug with OpenOCD,加入断点,即可开始调试

在这里插入图片描述

成功
在这里插入图片描述
可以在左面查看变量,添加监视等。

导入CubeIDE工程

CubeIDE实际上也是用的arm-gcc的工具链。

我这里用cubeMX生成一个来说明。

创建一个CubeIDE工程

在这里插入图片描述

导入

导入空的嵌入式gcc项目
在这里插入图片描述

项目资源,项目属性等已经自动添加好了。

构建配置仍需手动修改。

在这里插入图片描述

注意生成的flash.ld文件中

  .ARM.extab (READONLY) : /* The "READONLY" keyword is only supported in GCC11 and later, remove it if using GCC10 or earlier. */{. = ALIGN(4);*(.ARM.extab* .gnu.linkonce.armextab.*). = ALIGN(4);} >FLASH

它有个关键词需要gcc11以上的版本,目前(2025年1月20日)EIDE下载到的是10!可以删除相关内容,或者手动更新工具链

之后即可正常编译。
在这里插入图片描述

烧录、调试等完全一致,见上文。

后记

使用VSCode EIDE开发,不需要其它IDE。
使用arm-gcc完全免费

没有这个EIDE插件确实能开发,但是要手动配置工具链,每次编译代码都需要在命令窗口中输入相应的指令,很麻烦。

按理说,找到对应内核的工具链就能开发相应的单片机。
EIDE这个插件能设置的工具链挺多的。
在这里插入图片描述

CMake现在在C/C++的项目中用的越来越多,建议了解一下。
STM32 VS Code Extension 插件用的是CMake。但它没有图形化的配置界面,比如加个文件,得自己写路径,比较麻烦。

参考资料

抛弃keil?VScode开发stm32完整教程_哔哩哔哩_bilibili

VSCode+EIDE开发CH32V系列RISC-V MCU - Wahahahehehe - 博客园

这是什么? | Embedded IDE For VSCode

cortex-debug 用法 - Blog - Embedded IDE Forum
ension 插件用的就是CMake。但它没有图形化的配置界面,比如加个文件,得自己写路径,比较麻烦。

相关文章:

VSCode下EIDE插件开发STM32

VSCode下STM32开发环境搭建 本STM32教程使用vscode的EIDE插件的开发环境,完全免费,有管理代码文件的界面,不需要其它IDE。 视频教程见本人的 VSCodeEIDE开发STM32 安装EIDE插件 Embedded IDE 嵌入式IDE 这个插件可以帮我们管理代码文件&am…...

HTML之拜年/跨年APP(改进版)

目录: 一:目录 二:效果 三:页面分析/开发逻辑 1.页面详细分析: 2.开发逻辑: 四:完整代码(不多废话) index.html部分 app.json部分 二:效果 三:页面…...

解决 WSL 2 中 Ubuntu 22.04 安装 Docker 后无法启动的问题

问题场景 安装Docker后,执行sudo service docker start启动Docker,提示启动成功 rootDev:~# sudo service docker start * Starting Docker: docker [ OK ]执行su…...

Chrome 132 版本新特性

Chrome 132 版本新特性 一、Chrome 132 版本浏览器更新 1. 在 iOS 上使用 Google Lens 搜索 在 Chrome 132 版本中,开始在所有平台上推出这一功能。 1.1. 更新版本: Chrome 126 在 ChromeOS、Linux、Mac、Windows 上:在 1% 的稳定版用户…...

《贪心算法:原理剖析与典型例题精解》

必刷的贪心算法典型例题! 算法竞赛(蓝桥杯)贪心算法1——数塔问题-CSDN博客 算法竞赛(蓝桥杯)贪心算法2——需要安排几位师傅加工零件-CSDN博客 算法(蓝桥杯)贪心算法3——二维数组排序与贪心算…...

CSS笔记基础篇02——浮动、标准流、定位、CSS精灵、字体图标

黑马程序员视频地址: 前端Web开发HTML5CSS3移动web视频教程https://www.bilibili.com/video/BV1kM4y127Li?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p70https://www.bilibili.com/video/BV1kM4y127Li?vd_source…...

Golang Gin系列-6:Gin 高级路由及URL参数

在本章中,我们将深入研究使用Gin框架的高级路由和URL参数。我们将介绍如何创建和使用路由组、应用中间件、提取路径参数、处理查询字符串、处理静态文件以及使用HTML模板。 路由分组 为什么要使用路由组? 使用路由组有助于保持代码结构整洁有序。当路由…...

重温STM32之环境安装

缩写 CMSIS:common microcontroller software interface standard 1,keil mdk安装 链接 Keil Product Downloads 安装好后,开始安装平台软件支持包(keil 5后不在默认支持所有的平台软件开发包,需要自行下载&#…...

web应用引入cookie机制的用途和cookie技术主要包括的内容

web应用引入cookie机制,用于用户跟踪。 (1)HTTP响应报文中的Cookie头行:set-Cookie (2)用户浏览器在本地存储、维护和管理的Cookie文件 (3)HTTP请求报文中的Cookie头行:…...

Visual Studio Code + Stm32 (IAR)

记录一下, 以前看别人在 vsc 下配置 stm32 工程非常麻烦。 最近,突然发现, iar 官方出了两个插件, iar build 、 iar C-Spy 安装之后,配置一下 iar 软件路径。 然后,直接打开工程目录,编译…...

小程序获取微信运动步数

1、用户点击按钮&#xff0c;在小程序中触发getuserinfo方法&#xff0c;获取用户信息 <scroll-view class"scrollarea" scroll-y type"list"><view class"container"><button bind:tap"getLogin">获取</button&…...

嵌入式Linux驱动开发之platform

关键词&#xff1a;rk3399 嵌入式驱动 Linux platform 前言 前面的嵌入式Linux驱动都是描述从特定的SOC与特定设备之间的直接两两通信。而Linux不是为单一某一SOC结构而设计的操作系统&#xff0c;它可以运行在X86、ARM等多种架构多种SOC平台上&#xff0c;如果驱动程序按照S…...

【蓝桥杯】43693.日期问题

题目描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在 1960 年 1 月 1 日至 2059 年 12 月 31 日。令小明头疼的是&#xff0c;这些日期采用的格式非常不统一&#xff0c;有采用年/月/日的&#xff0c;有采用月/日/年的&#xff0c;还有采用…...

opengrok_windows_多工程的同步

多工程的目录 工程代码下载和log配置 工程代码下载 在每个工程的src目录下&#xff0c;下载工程代码&#xff0c;以下载pulseaudio的代码为例。 git clone gitgithub.com:pulseaudio/pulseaudio.git log配置文件 拷贝D:\opengrok\opengrok-…...

Redis的安装和使用--Windows系统

Redis下载地址&#xff1a; windows版本readis下载&#xff08;GitHub&#xff09;&#xff1a; https://github.com/tporadowski/redis/releases &#xff08;推荐使用&#xff09; https://github.com/MicrosoftArchive/redis/releases 官网下载&#xff08;无Windows版本…...

【odbc】odbc连接kerberos认证的 hive和spark thriftserver

hive odbc驱动&#xff0c;以下两种都可以 教程&#xff1a;使用 ODBC 和 PowerShell 查询 Apache HiveHive ODBC Connector 2.8.0 for Cloudera Enterprise spark thriftserver本质就是披着hiveserver的外壳的spark server 完成kerberos认证: &#xff08;1&#xff09;可以…...

亚博microros小车-原生ubuntu支持系列:1 键盘控制

背景&#xff1a;电脑配置不太行&#xff0c;我在ubuntu再运行vmware&#xff0c;里面运行亚博官方的虚拟机镜像ubuntu&#xff0c;系统很卡。基本上8G内存给打满了。还是想把亚博官方的代码迁移出来&#xff0c;之前售后就说除了官方镜像虚拟机&#xff0c;需要自己摸索迁移。…...

【Linux】利用‘shell脚本’快速查看服务的运行情况

一、脚本目的 为了方便查看服务的运行情况&#xff0c;特此写了一个shell脚本&#xff0c;这样就很方便获取&#xff0c;查看如nginx、mysql等服务的运行状态、监听端口状态、防火墙、端口开放状态等。 二、shell脚本源代码 #!/bin/bash SCRIPTPATH$(cd "$(dirname $0)…...

[2025分类时序异常检测指标R-AUC与VUS]

梳理了一下分类中常见的指标&#xff0c;这些指标与时序异常检测中新提出的A-RUC与VUS之间的关系 真正例(True Positive,TP): 被正确识别为正样本的数量。真负例(True Negative,TN): 被正确识别为负样本的数量。假正例(False Positive ,FP): 被错误识为正样本数量假负例(Fals…...

设计模式之结构型模式

在软件开发的世界里&#xff0c;设计模式是前辈们智慧的结晶&#xff0c;它们为我们提供了通用的解决方案来应对各种常见的软件设计问题。今天&#xff0c;我们深入探讨设计模式中的结构型模式&#xff0c;并用 Java 语言来实现它们。 什么是结构型模式 结构型模式主要关注如…...

Spring Boot中的404错误:原因、影响及处理策略

Spring Boot中的404错误&#xff1a;原因、影响及处理策略 在Web开发过程中&#xff0c;404错误是一个常见的HTTP状态码&#xff0c;表示“未找到”资源。在Spring Boot项目中&#xff0c;尽管它以其简化的配置和快速的开发速度著称&#xff0c;但开发者仍可能遇到404错误。本…...

网络协议如何确保数据的安全传输?

网络协议作为计算机网络通信的基石&#xff0c;其设计不仅旨在实现数据的有效传输&#xff0c;更在于确保数据在传输过程中的安全性。对于网络协议如何保障数据安全传输&#xff0c;是很多企业和网络IT部门的重点&#xff0c;本文将从多方面概述相关方法。 加密与解密机制 1. …...

Python绘制数据地图-MovingPandas

MovingPandas 是一个用于时空数据分析的 Python 库&#xff0c;它扩展了 Pandas 和 GeoPandas&#xff0c;使得处理和分析带有时间戳的地理数据变得更加方便。虽然 MovingPandas 本身不直接提供数据可视化功能&#xff0c;但你可以结合其他库如 matplotlib、folium 或 plotly 来…...

鸿蒙子组件根据数据,刷新item Ui的规范

鸿蒙 子组件列表中&#xff0c;有多个isSelect&#xff0c;父组件只用一个state类型的isSelect&#xff0c;就可以将它们关联起来&#xff0c;如下&#xff1a; isLike:item1.isPraise?!this.isLike:this.isLike, 子组件想要数据变化&#xff0c;UI随着更新&#xff0c;就得…...

使用 Flask 构建视频转 GIF 工具

使用 Flask 构建视频转 GIF 工具 在前几日的文章当中&#xff0c;我介绍了如何使用 Python 脚本将视频转化为 GIF 动画&#xff0c;为了更好、更方便的进行操作&#xff0c;在这篇博客中&#xff0c;我将介绍使用 Flask 框架创建一个简单的 Web 应用程序&#xff0c;该应用程序…...

基于SpringBoot+Vue的智慧动物园管理系统的设计与实现

获取源码&#xff1a;基于SpringBootVue智慧动物园系统设计与实现: 后台和用户前台。后台包括首页、员工管理、考勤管理、部门管理、角色管理、审核管理、动物管理、演出管理、园区管理、园区设施维修、饲养管理、行为观察管理、疫苗管理、看护管理、个人中心、票务管理、收入管…...

“深入浅出”系列之数通篇:(5)TCP的三次握手和四次挥手

TCP&#xff08;传输控制协议&#xff09;的三次握手和四次挥手是TCP连接建立和释放的过程。 一、TCP三次握手 TCP三次握手是为了建立可靠的连接&#xff0c;确保客户端和服务器之间的通信能力。具体过程如下&#xff1a; 第一次握手&#xff1a;客户端向服务器发送一个带有…...

【初阶数据结构】探索数据的多米诺链:单链表

文章目录 1.链表1.1 概念及结构1.2 分类 2.单链表接口实现2.1 单链表节点创建2.2 单链表打印2.3 单链表尾插2.4 单链表头插2.5 单链表尾删2.6 单链表头删2.7单链表查找2.8 单链表在pos位置插入x2.8.1 pos前2.8.2 pos后 2.9单链表在pos位置删除x2.9.1 pos前2.9.2 pos后 2.2.10 单…...

我的创作纪念日——我与CSDN一起走过的365天

目录 一、机缘&#xff1a;旅程的开始 二、收获&#xff1a;沿路的花朵 三、日常&#xff1a;不断前行中 四、成就&#xff1a;一点小确幸 五、憧憬&#xff1a;梦中的重点 一、机缘&#xff1a;旅程的开始 最开始开始写博客是在今年一二月份的时候&#xff0c;也就是上一…...

w-form-select 组件中 分析 自定义属性 和 el-select 自带属性 的对比表格

以下是该组件中 自定义属性 和 el-select 自带属性 的对比表格&#xff1a; 属性/功能自定义el-select 自带说明label✔️❌自定义属性&#xff0c;用于设置表单项的标签。prop✔️❌自定义属性&#xff0c;用于表单验证时的字段名。labelWidth✔️❌自定义属性&#xff0c;用…...

【蓝桥杯选拔赛真题63】C++奇数 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解

目录 C++奇数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、运行结果 五、考点分析 七、推荐资料 C++奇数 第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题 一、题目要求 1、编程实现 给定两个正整数N和M(10≤N<M≤10000),请找出N到M…...

Android 存储进化:分区存储

} 在写入存储之前&#xff0c;需要知道设备有多少空间可用&#xff0c;不够的话会抛出异常。不过现在的智能设备内存也是比较大的&#xff0c;这部分可以参考Google 查询可用空间 2.1 内部存储空间 打开Android studio的 Device File Explorer时&#xff0c;可以看到应用的内部…...

NPM 与 Node.js 版本兼容问题:npm warn cli npm does not support Node.js

问题描述与处理策略 1、问题描述 npm warn cli npm v10.9.2 does not support Node.js v18.16.1. This version of npm supports the following node versions: ^18.17.0 || >20.5.0. You can find the latest version at https://nodejs.org/.# 翻译 npm warn cli npm v1…...

docker离线安装及部署各类中间件(x86系统架构)

前言&#xff1a;此文主要针对需要在x86内网服务器搭建系统的情况 一、docker离线安装 1、下载docker镜像 https://download.docker.com/linux/static/stable/x86_64/ 版本&#xff1a;docker-23.0.6.tgz 2、将docker-23.0.6.tgz 文件上传到服务器上面&#xff0c;这里放在…...

redis 分布式方案

文章目录 前言一、主从复制1、主从配置2、建立连接3、数据同步3.1、全量同步3.2、全量同步配置3.3、 增量同步3.4、 增量同步配置 二、redis sentinel1、主要功能2、sentinel配置3、高可用3.1、故障发现3.2、故障转移3.2.1、选举sentinel进行故障转移3.2.2、选举从节点升级成主…...

# [0114] Task01 《数学建模导论》P1 解析几何与方程模型

链接&#xff1a;https://www.datawhale.cn/activity/124 整理的相关代码库 GitHub 页面链接 绪论 姜启源&#xff1a;“数学建模就是建立数学模型解决实际问题” 本质还是解应用题&#xff0c;只是曾经的“小明买糖”变成了如今的“嫦娥探月”。 SEIR 模型&#xff0c;也…...

PCM5142集成32位384kHz PCM音频立体声114dB差分输出DAC编解码芯片

目录 PCM5142 简介PCM5142功能框图PCM5142特性 参考原理图 PCM5142 简介 PCM514x 属于单片 CMOS 集成电路系列&#xff0c;由立体声数模转换器 (DAC) 和采用薄型小外形尺寸 (TSSOP) 封装的附加支持电路组成。PCM514x 使用 TI 最新一代高级分段 DAC 架构产品&#xff0c;可实现…...

【HarmonyOS NEXT】碰一碰开发分享

关键词&#xff1a;鸿蒙、碰一碰、systemShare、harmonyShare、Share Kit 华为分享新推出碰一碰分享&#xff0c;支持用户通过手机碰一碰发起跨端分享&#xff0c;可实现传输图片、共享wifi等。我们只需调用系统 api 传入所需参数拉起对应分享卡片模板即可&#xff0c;无需对 U…...

pytest+playwright落地实战大纲

前言 很久没有更新博客&#xff0c;是因为在梳理制作Playwright测试框架实战相关的课程内容。现在课程已经完结&#xff0c;开个帖子介绍下这门课程&#xff08;硬广, o(〃&#xff3e;▽&#xff3e;〃)o&#xff09; 课程放在CSDN学习频道&#xff0c; 欢迎关注~ PyTestPl…...

HTML<center>标签

HTML5不支持。 <center>标签在HTML4中用于使文本居中对齐。 用什么来代替呢&#xff1f; 例子 居中对齐文本&#xff08;使用 CSS&#xff09;&#xff1a; <html> <head> <style> h1 {text-align: center;} p {text-align: center;} div {text-a…...

【部署】将项目部署到云服务器

目录 1.获得服务器 2.连接到云服务器 3.配置环境 3.1.Java&#xff08;运行后端所需&#xff09; 3.2.MySQL数据库 3.3.Nginx&#xff08;运行前端所需&#xff09; 3.4. Node.js&#xff08;构建前端所需&#xff09; 4.打包项目 4.1.打包后端项目 4.2.打包前端项目…...

微软宣布Win11 24H2进入新阶段!设备将自动下载更新

快科技1月19日消息&#xff0c;微软于1月16日更新了支持文档&#xff0c;宣布Windows 11 24H2进入新阶段。 24H2更新于2024年10月1日发布&#xff0c;此前为可选升级&#xff0c;如今微软开始在兼容的Windows 11设备上自动下载并安装24H2版本。 微软表示&#xff1a;“运行Wi…...

傅里叶变换在语音识别中的关键作用

在语音识别中&#xff0c;傅里叶变换起着至关重要的作用&#xff0c;主要体现在以下几个方面&#xff1a; 一、时域到频域的转换 语音信号的特点 语音信号是一种时域信号&#xff0c;它随时间变化。例如&#xff0c;当我们说话时&#xff0c;声带的振动产生声波&#xff0c;这…...

面试-业务逻辑2

应用 给定2个数组a、b&#xff0c;若a[i] b[j]&#xff0c;则记(i,j)为一个二元数组&#xff0c;求具体的二元数组及其个数。 实现 a input("请输入数组a的元素个数&#xff1a;") # print(a) a_list list(map(int, input("请输入数组a的元素&#xff0c;…...

【20】Word:小许-质量管理-论文❗

目录 题目​ NO1.2.3.4.5 NO6.7 NO8 NO9 NO10.11 题目 NO1.2.3.4.5 另存为“Word.docx”文件在考生文件夹下&#xff0c;F12Fn是另存为的作用布局→页面设置对话框→纸张&#xff1a;大小A4→页边距&#xff1a;上下左右不连续ctrl选择除表格外的所有内容→开始→字体对…...

Python数据分析案例70——基于神经网络的时间序列预测(滞后性的效果,预测中存在的问题)

背景 这篇文章可以说是基于 现代的一些神经网络的方法去做时间序列预测的一个介绍科普&#xff0c;也可以说是一个各种模型对比的案例&#xff0c;但也会谈一谈自己做了这么久关于神经网络的时间序列预测的论文&#xff0c;其中一些常见的模式及它们存在的问题以及效果&#x…...

Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正

Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正 1 添加依赖2 测试代码3 测试结果 在OpenCV中&#xff0c;仿射变换&#xff08;Affine Transformation&#xff09;和透视变换&#xff08;Perspective Transformation&#xff09;是两种常用的图像几何变换方法。 变换方…...

PyTorch使用教程(11)-cuda的使用方法

1. 基本概念 CUDA&#xff08;Compute Unified Device Architecture&#xff09;是NVIDIA开发的一种并行计算平台和编程模型&#xff0c;专为图形处理器&#xff08;GPU&#xff09;设计&#xff0c;旨在加速科学计算、工程计算和机器学习等领域的高性能计算任务。CUDA允许开发…...

微软开源AI Agent AutoGen 详解

AutoGen是微软发布的一个用于构建AI Agent系统的开源框架,旨在简化事件驱动、分布式、可扩展和弹性Agent应用程序的创建过程。 开源地址: GitHub - microsoft/autogen: A programming framework for agentic AI 🤖 PyPi: autogen-agentchat Discord: https://aka.ms/auto…...

上位机工作感想-2024年工作总结和来年计划

随着工作年限的增增长&#xff0c;发现自己越来越不喜欢在博客里面写一些掺杂自己感想的东西了&#xff0c;或许是逐渐被工作逼得“成熟”了吧。2024年&#xff0c;学到了很多东西&#xff0c;做了很多项目&#xff0c;也帮别人解决了很多问题&#xff0c;唯独没有涨工资。来这…...