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 toolchain即GNU 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、用户点击按钮,在小程序中触发getuserinfo方法,获取用户信息 <scroll-view class"scrollarea" scroll-y type"list"><view class"container"><button bind:tap"getLogin">获取</button&…...
嵌入式Linux驱动开发之platform
关键词:rk3399 嵌入式驱动 Linux platform 前言 前面的嵌入式Linux驱动都是描述从特定的SOC与特定设备之间的直接两两通信。而Linux不是为单一某一SOC结构而设计的操作系统,它可以运行在X86、ARM等多种架构多种SOC平台上,如果驱动程序按照S…...
【蓝桥杯】43693.日期问题
题目描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在 1960 年 1 月 1 日至 2059 年 12 月 31 日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用…...
opengrok_windows_多工程的同步
多工程的目录 工程代码下载和log配置 工程代码下载 在每个工程的src目录下,下载工程代码,以下载pulseaudio的代码为例。 git clone gitgithub.com:pulseaudio/pulseaudio.git log配置文件 拷贝D:\opengrok\opengrok-…...
Redis的安装和使用--Windows系统
Redis下载地址: windows版本readis下载(GitHub): https://github.com/tporadowski/redis/releases (推荐使用) https://github.com/MicrosoftArchive/redis/releases 官网下载(无Windows版本…...
【odbc】odbc连接kerberos认证的 hive和spark thriftserver
hive odbc驱动,以下两种都可以 教程:使用 ODBC 和 PowerShell 查询 Apache HiveHive ODBC Connector 2.8.0 for Cloudera Enterprise spark thriftserver本质就是披着hiveserver的外壳的spark server 完成kerberos认证: (1)可以…...
亚博microros小车-原生ubuntu支持系列:1 键盘控制
背景:电脑配置不太行,我在ubuntu再运行vmware,里面运行亚博官方的虚拟机镜像ubuntu,系统很卡。基本上8G内存给打满了。还是想把亚博官方的代码迁移出来,之前售后就说除了官方镜像虚拟机,需要自己摸索迁移。…...
【Linux】利用‘shell脚本’快速查看服务的运行情况
一、脚本目的 为了方便查看服务的运行情况,特此写了一个shell脚本,这样就很方便获取,查看如nginx、mysql等服务的运行状态、监听端口状态、防火墙、端口开放状态等。 二、shell脚本源代码 #!/bin/bash SCRIPTPATH$(cd "$(dirname $0)…...
[2025分类时序异常检测指标R-AUC与VUS]
梳理了一下分类中常见的指标,这些指标与时序异常检测中新提出的A-RUC与VUS之间的关系 真正例(True Positive,TP): 被正确识别为正样本的数量。真负例(True Negative,TN): 被正确识别为负样本的数量。假正例(False Positive ,FP): 被错误识为正样本数量假负例(Fals…...
设计模式之结构型模式
在软件开发的世界里,设计模式是前辈们智慧的结晶,它们为我们提供了通用的解决方案来应对各种常见的软件设计问题。今天,我们深入探讨设计模式中的结构型模式,并用 Java 语言来实现它们。 什么是结构型模式 结构型模式主要关注如…...
Spring Boot中的404错误:原因、影响及处理策略
Spring Boot中的404错误:原因、影响及处理策略 在Web开发过程中,404错误是一个常见的HTTP状态码,表示“未找到”资源。在Spring Boot项目中,尽管它以其简化的配置和快速的开发速度著称,但开发者仍可能遇到404错误。本…...
网络协议如何确保数据的安全传输?
网络协议作为计算机网络通信的基石,其设计不仅旨在实现数据的有效传输,更在于确保数据在传输过程中的安全性。对于网络协议如何保障数据安全传输,是很多企业和网络IT部门的重点,本文将从多方面概述相关方法。 加密与解密机制 1. …...
Python绘制数据地图-MovingPandas
MovingPandas 是一个用于时空数据分析的 Python 库,它扩展了 Pandas 和 GeoPandas,使得处理和分析带有时间戳的地理数据变得更加方便。虽然 MovingPandas 本身不直接提供数据可视化功能,但你可以结合其他库如 matplotlib、folium 或 plotly 来…...
鸿蒙子组件根据数据,刷新item Ui的规范
鸿蒙 子组件列表中,有多个isSelect,父组件只用一个state类型的isSelect,就可以将它们关联起来,如下: isLike:item1.isPraise?!this.isLike:this.isLike, 子组件想要数据变化,UI随着更新,就得…...
使用 Flask 构建视频转 GIF 工具
使用 Flask 构建视频转 GIF 工具 在前几日的文章当中,我介绍了如何使用 Python 脚本将视频转化为 GIF 动画,为了更好、更方便的进行操作,在这篇博客中,我将介绍使用 Flask 框架创建一个简单的 Web 应用程序,该应用程序…...
基于SpringBoot+Vue的智慧动物园管理系统的设计与实现
获取源码:基于SpringBootVue智慧动物园系统设计与实现: 后台和用户前台。后台包括首页、员工管理、考勤管理、部门管理、角色管理、审核管理、动物管理、演出管理、园区管理、园区设施维修、饲养管理、行为观察管理、疫苗管理、看护管理、个人中心、票务管理、收入管…...
“深入浅出”系列之数通篇:(5)TCP的三次握手和四次挥手
TCP(传输控制协议)的三次握手和四次挥手是TCP连接建立和释放的过程。 一、TCP三次握手 TCP三次握手是为了建立可靠的连接,确保客户端和服务器之间的通信能力。具体过程如下: 第一次握手:客户端向服务器发送一个带有…...
【初阶数据结构】探索数据的多米诺链:单链表
文章目录 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天
目录 一、机缘:旅程的开始 二、收获:沿路的花朵 三、日常:不断前行中 四、成就:一点小确幸 五、憧憬:梦中的重点 一、机缘:旅程的开始 最开始开始写博客是在今年一二月份的时候,也就是上一…...
w-form-select 组件中 分析 自定义属性 和 el-select 自带属性 的对比表格
以下是该组件中 自定义属性 和 el-select 自带属性 的对比表格: 属性/功能自定义el-select 自带说明label✔️❌自定义属性,用于设置表单项的标签。prop✔️❌自定义属性,用于表单验证时的字段名。labelWidth✔️❌自定义属性,用…...
【蓝桥杯选拔赛真题63】C++奇数 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解
目录 C++奇数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、运行结果 五、考点分析 七、推荐资料 C++奇数 第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题 一、题目要求 1、编程实现 给定两个正整数N和M(10≤N<M≤10000),请找出N到M…...
Android 存储进化:分区存储
} 在写入存储之前,需要知道设备有多少空间可用,不够的话会抛出异常。不过现在的智能设备内存也是比较大的,这部分可以参考Google 查询可用空间 2.1 内部存储空间 打开Android studio的 Device File Explorer时,可以看到应用的内部…...
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系统架构)
前言:此文主要针对需要在x86内网服务器搭建系统的情况 一、docker离线安装 1、下载docker镜像 https://download.docker.com/linux/static/stable/x86_64/ 版本:docker-23.0.6.tgz 2、将docker-23.0.6.tgz 文件上传到服务器上面,这里放在…...
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 解析几何与方程模型
链接:https://www.datawhale.cn/activity/124 整理的相关代码库 GitHub 页面链接 绪论 姜启源:“数学建模就是建立数学模型解决实际问题” 本质还是解应用题,只是曾经的“小明买糖”变成了如今的“嫦娥探月”。 SEIR 模型,也…...
PCM5142集成32位384kHz PCM音频立体声114dB差分输出DAC编解码芯片
目录 PCM5142 简介PCM5142功能框图PCM5142特性 参考原理图 PCM5142 简介 PCM514x 属于单片 CMOS 集成电路系列,由立体声数模转换器 (DAC) 和采用薄型小外形尺寸 (TSSOP) 封装的附加支持电路组成。PCM514x 使用 TI 最新一代高级分段 DAC 架构产品,可实现…...
【HarmonyOS NEXT】碰一碰开发分享
关键词:鸿蒙、碰一碰、systemShare、harmonyShare、Share Kit 华为分享新推出碰一碰分享,支持用户通过手机碰一碰发起跨端分享,可实现传输图片、共享wifi等。我们只需调用系统 api 传入所需参数拉起对应分享卡片模板即可,无需对 U…...
pytest+playwright落地实战大纲
前言 很久没有更新博客,是因为在梳理制作Playwright测试框架实战相关的课程内容。现在课程已经完结,开个帖子介绍下这门课程(硬广, o(〃^▽^〃)o) 课程放在CSDN学习频道, 欢迎关注~ PyTestPl…...
HTML<center>标签
HTML5不支持。 <center>标签在HTML4中用于使文本居中对齐。 用什么来代替呢? 例子 居中对齐文本(使用 CSS): <html> <head> <style> h1 {text-align: center;} p {text-align: center;} div {text-a…...
【部署】将项目部署到云服务器
目录 1.获得服务器 2.连接到云服务器 3.配置环境 3.1.Java(运行后端所需) 3.2.MySQL数据库 3.3.Nginx(运行前端所需) 3.4. Node.js(构建前端所需) 4.打包项目 4.1.打包后端项目 4.2.打包前端项目…...
微软宣布Win11 24H2进入新阶段!设备将自动下载更新
快科技1月19日消息,微软于1月16日更新了支持文档,宣布Windows 11 24H2进入新阶段。 24H2更新于2024年10月1日发布,此前为可选升级,如今微软开始在兼容的Windows 11设备上自动下载并安装24H2版本。 微软表示:“运行Wi…...
傅里叶变换在语音识别中的关键作用
在语音识别中,傅里叶变换起着至关重要的作用,主要体现在以下几个方面: 一、时域到频域的转换 语音信号的特点 语音信号是一种时域信号,它随时间变化。例如,当我们说话时,声带的振动产生声波,这…...
面试-业务逻辑2
应用 给定2个数组a、b,若a[i] b[j],则记(i,j)为一个二元数组,求具体的二元数组及其个数。 实现 a input("请输入数组a的元素个数:") # print(a) a_list list(map(int, input("请输入数组a的元素,…...
【20】Word:小许-质量管理-论文❗
目录 题目 NO1.2.3.4.5 NO6.7 NO8 NO9 NO10.11 题目 NO1.2.3.4.5 另存为“Word.docx”文件在考生文件夹下,F12Fn是另存为的作用布局→页面设置对话框→纸张:大小A4→页边距:上下左右不连续ctrl选择除表格外的所有内容→开始→字体对…...
Python数据分析案例70——基于神经网络的时间序列预测(滞后性的效果,预测中存在的问题)
背景 这篇文章可以说是基于 现代的一些神经网络的方法去做时间序列预测的一个介绍科普,也可以说是一个各种模型对比的案例,但也会谈一谈自己做了这么久关于神经网络的时间序列预测的论文,其中一些常见的模式及它们存在的问题以及效果&#x…...
Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正
Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正 1 添加依赖2 测试代码3 测试结果 在OpenCV中,仿射变换(Affine Transformation)和透视变换(Perspective Transformation)是两种常用的图像几何变换方法。 变换方…...
PyTorch使用教程(11)-cuda的使用方法
1. 基本概念 CUDA(Compute Unified Device Architecture)是NVIDIA开发的一种并行计算平台和编程模型,专为图形处理器(GPU)设计,旨在加速科学计算、工程计算和机器学习等领域的高性能计算任务。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年工作总结和来年计划
随着工作年限的增增长,发现自己越来越不喜欢在博客里面写一些掺杂自己感想的东西了,或许是逐渐被工作逼得“成熟”了吧。2024年,学到了很多东西,做了很多项目,也帮别人解决了很多问题,唯独没有涨工资。来这…...