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

3. keil + vscode 进行stm32协同开发

1. 为什么使用vscode

主要还是界面友好,使用习惯问题,vscode 从前端,js, c/c++, qt, 仓颉,rust都有很好插件的支持,并且有romote, wsl 等很多插件可以提高效率, 唯一的问题就是要使用插件进行环境的配置。

2. 使用前准备

  • vscode 安装
  • keil MDK 环境安装, 可参考: https://blog.csdn.net/qq_51355375/article/details/143273553
  • 工程模板准备, 可参考: https://blog.csdn.net/qq_51355375/article/details/143276840

3. 插件安装

  • c/c++ Extesion Pack
  • EIDE
  • Cortex DeBug
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4. 配置EIDE工具链

EIDE官网: https://em-ide.com/zh-cn/docs/intro
插件安装完后,点击图标配置工具链

  • CppCheck
  • OpenOCD Programmer
  • GNU Arm EmdeddedToolchain(stable)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    安装完成会有一个 ‘✔’ 标记将会出现
    在这里插入图片描述

5. 配置外部编译器

在安装的插件中找到eide, 点设置
在这里插入图片描述
在这里插入图片描述
找到keil 安装路径中的ARMCC路径
在这里插入图片描述
填入插件ARMCC安装路径设置
在这里插入图片描述

6. 导入工程

将之前创建的工程模板复制一份
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
是否与原有的 KEIL 项目共存于同一目录下? 如果选择 “No”,你需要为 EIDE 项目指定存放位置 !
这里选择不共存
在这里插入图片描述
在原项目的Projecs目录下创建EIDE目录,存放eide项目文件
在这里插入图片描述
在这里插入图片描述

7. 项目配置

7.1 添加固件包

在这里插入图片描述
选择当时给MDK安装过的固件包
在这里插入图片描述

7.2 编译配置

在这里插入图片描述
编译输出配置:
在这里插入图片描述
一些配置和keil中是对应的
在这里插入图片描述
在这里插入图片描述
下载器选,这里选OpenOCD
在这里插入图片描述
根据实际配置OpenOCD
在这里插入图片描述
检查头文件配置和宏
在这里插入图片描述
可以通过配置文件或直接添加
在这里插入图片描述
在这里插入图片描述

8. 编译下载测试

在这里插入图片描述
在这里插入图片描述
单片机上电,连接下载器
在这里插入图片描述
在这里插入图片描述

9. 调试

9.1 配置 cortex-debug

在这里插入图片描述
点击对应选项在配置文件中会出现对应配置项
在这里插入图片描述
在这里插入图片描述
之前工具链安装过,复制下来就行, 注意,这里使用绝对路径
在这里插入图片描述

9.2 创建调试

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

修改launch.json

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Cortex Debug","cwd": "${workspaceFolder}","executable": "build/template/stm32f103.elf","request": "launch","type": "cortex-debug","runToEntryPoint": "main","servertype": "openocd","configFiles": ["interface/stlink.cfg","target/stm32f1x.cfg"]}]
}

在这里插入图片描述
executable 配置路径在 EIDE 项目下的build 下对应路径
点击调试运行,调试按钮界面出现,测试成功
在这里插入图片描述

10. 自动识别文件编码

在这里插入图片描述
搜索 files.autoGuessEncoding
在这里插入图片描述
勾选后就能自动识别文件编码,防止导入的项目中文乱码

相关文章:

3. keil + vscode 进行stm32协同开发

1. 为什么使用vscode 主要还是界面友好,使用习惯问题,vscode 从前端,js, c/c, qt, 仓颉,rust都有很好插件的支持,并且有romote, wsl 等很多插件可以提高效率, 唯一的问题就是要使用插件进行环境…...

React 组件生命周期与 Hooks 简明指南

文章目录 一、类组件的生命周期方法1. 挂载阶段2. 更新阶段3. 卸载阶段 二、函数组件中的 Hooks1. useState2. useEffect3. useContext4. useReducer 结论 好的,我们来详细讲解一下 React 类组件的生命周期方法和函数组件中的钩子(hooks)。 …...

【springcloud】gateway网关的作用

目录 1. 说明2. 路由转发3. 负载均衡4. 安全认证与授权5. 熔断与降级6. 请求限流7. 监控与日志8. 过滤器功能 1. 说明 1.在Spring Cloud中,Gateway网关扮演着至关重要的角色。2.基于Spring Framework 5、Spring Boot和Project Reactor构建的API网关,专为…...

「C/C++」C++11 之<thread>多线程编程

✨博客主页何曾参静谧的博客📌文章专栏「C/C++」C/C++程序设计📚全部专栏「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid函数说明目…...

HTML前端页面设计静态网站-仿百度

浅浅分享一下前端作业&#xff0c;大佬轻喷~ <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>百度&#xff08;伪&#xff09;</title><style>body {margin: 0;padding: 0;}.top-bar {dis…...

百度SEO是否还有用?福州百度SEO专家林汉文为你深度解析

大家好&#xff0c;我是林汉文&#xff0c;一名专注于百度SEO优化的专家&#xff0c;最近有很多人问我&#xff1a;百度SEO还有用吗&#xff1f;在如今快速变化的数字营销环境中&#xff0c;这确实是一个值得探讨的问题。今天&#xff0c;我就来为大家详细分析百度SEO的现状&am…...

数学建模学习(134):使用Python基于WISP的多准则决策分析

WISP算法技术性文章 1. 算法介绍 WISP(Weighted Independent Set Problem)是一种优化算法,主要用于解决图论中的加权独立集问题。加权独立集问题是一个经典的组合优化问题,涉及从一个图中选择一个独立的顶点集,使得所选顶点的总权重最大。这个问题在计算机科学、运筹学、…...

.net core NPOI以及NOPI mapper

我们在日常开发中对Excel的操作可能会比较频繁&#xff0c;好多功能都会涉及到Excel的操作。在.Net Core中大家可能使用Npoi比较多&#xff0c;这款软件功能也十分强大&#xff0c;而且接近原始编程。但是直接使用Npoi大部分时候我们可能都会自己封装一下&#xff0c;毕竟根据二…...

分布式锁(redisson,看门狗,主从一致性)

目录 分布式锁一&#xff1a;基本原理和实现方式二&#xff1a;分布式锁的实现1&#xff1a;分布式锁的误删问题2&#xff1a;解决误删问题 三&#xff1a;lua脚本解决多条命令原子性问题调用lua脚本 四&#xff1a;Redisson1&#xff1a;redisson入门2&#xff1a;redisson可重…...

openEuler 服务器Python自动化安装WEB服务器和文件上传服务(1)

一、系统准备 我们的服务器采用了 openEuler 22.03 (LTS-SP4) 的初始化服务器模式安装 二、安装步骤 &#xff08;一&#xff09;安装依赖库 在终端中运行以下命令确保系统安装了必要的依赖&#xff1a; sudo dnf install -y python3上述 Python 脚本中的依赖库会在运行 Py…...

【Python游戏开发】石头剪刀布游戏(附完整Python完整代码)

石头剪刀布游戏:Pygame实现 结果图前言核心函数思考步骤实现原理和公式代码实现结论结果图 前言 石头剪刀布是一种经典的猜拳游戏,简单易玩但却蕴含着一定的策略性。本文将介绍如何使用Python和Pygame库开发一个简单的石头剪刀布游戏,并探讨其中的核心功能实现和思考过程。 …...

ctfshow(94,95)--PHP特性--strpos函数

建议先学习intval函数相关内容 Web94 源代码&#xff1a; include("flag.php"); highlight_file(__FILE__); if(isset($_GET[num])){$num $_GET[num];if($num"4476"){die("no no no!");}if(preg_match("/[a-z]/i", $num)){die(&qu…...

C++ --- 多线程的使用

目录 一.什么是线程&#xff1f; 线程的特点&#xff1a; 线程的组成&#xff1a; 二.什么是进程&#xff1f; 进程的特点&#xff1a; 进程的组成&#xff1a; 三.线程与进程的关系&#xff1a; 四.C的Thread方法的使用&#xff1a; 1.创建线程&#xff1a; 2.join(…...

百度笔试(10.29)

判断s字符串是否可以通过添加某些字符变成t字符串&#xff0c;s是否是t的子序列 s input() n int(input()) st set() res [] for idx in range(n):t input()if t in st or len(t) < len(s):continuest.add(t)i,j 0,0while i < len(s) and j < len(t):if s[i] …...

数据库版本更新后,如何迁移数据?

数据库版本更新后迁移数据是一个需要谨慎处理的过程。以下是一般步骤和最佳实践&#xff1a; 1. **备份数据**&#xff1a; 在进行任何迁移之前&#xff0c;确保对现有数据库进行完整备份。这可以是物理备份&#xff08;如数据库文件的拷贝&#xff09;或逻辑备份&#xff…...

Chrome与火狐的安全功能全面评估

在当今数字化时代&#xff0c;网络安全已成为用户最为关注的问题之一。作为两款广受欢迎的浏览器&#xff0c;Chrome和火狐&#xff08;Firefox&#xff09;都提供了多种安全功能来保护用户的在线隐私和数据安全。本文将全面评估这两款浏览器的安全功能&#xff0c;帮助用户更好…...

微服务设计模式 - 重试模式(Retry Pattern)

微服务设计模式 - 重试模式&#xff08;Retry Pattern&#xff09; 定义 重试模式&#xff08;Retry Pattern&#xff09;是一种微服务中的设计模式&#xff0c;用于在临时性失败&#xff08;如网络故障或暂时不可用的服务&#xff09;发生时&#xff0c;自动重新尝试请求&…...

DNS配置

1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器&#xff0c;对主dns服务器进行数据备份。 正反向解析 [rootlocalhost ~]# vim /etc/named.conf options {listen-on port 53 { 192.168.111.130; };directory "/var/named&quo…...

【Linux指令】---获取进程的PID

获取进程的PID getpid()函数...

在centos中安装cmake

安装依赖工具: sudo yum install -y epel-release sudo yum groupinstall -y "Development Tools" sudo yum install -y wget wget 下载 CMake 3.24 的压缩包: wget https://github.com/Kitware/CMake/releases/download/v3.24.0/cmake-3.24.0-linux-x86_64.tar.gz …...

美国不断自我革新的历史,为这个国家面对充满巨大机遇却又充满不确定性的未来提供了引人深思的经验教训

https://www.mckinsey.com/mgi/our-research/At-250-sustaining-Americas-competitive-edge 美国不断自我革新的历史&#xff0c;为这个国家面对充满巨大机遇却又充满不确定性的未来提供了引人深思的经验教训 这一切始于一场惊天动地的反抗行动。 1776年7月&#xff0c;来自13…...

终极macOS清理神器:Pearcleaner 3步彻底卸载应用不留痕迹

终极macOS清理神器&#xff1a;Pearcleaner 3步彻底卸载应用不留痕迹 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾将macOS应用拖入废纸篓后&…...

CircuitPython Web Workflow实战:无线开发Yoto Mini与I2C硬件验证

1. 项目概述与核心价值如果你玩过像树莓派Pico或者ESP32这类微控制器&#xff0c;肯定对“插拔-编程-调试”这个循环不陌生。每次改几行代码&#xff0c;就得拔下USB线&#xff0c;重新上电&#xff0c;然后盯着串口监视器看输出。这个过程在项目初期调试硬件时&#xff0c;尤其…...

Kubernetes部署Valheim游戏服务器:云原生技术赋能游戏运维实践

1. 项目概述&#xff1a;当维京英灵殿遇上容器编排如果你和我一样&#xff0c;既沉迷于《英灵神殿》&#xff08;Valheim&#xff09;里与好友共建家园、挑战上古巨兽的乐趣&#xff0c;又恰好是一名整天和Kubernetes&#xff08;k8s&#xff09;打交道的开发者或运维&#xff…...

Git安全增强实战:使用Ante实现策略即代码的版本控制防护

1. 项目概述&#xff1a;一个为开发者打造的“代码保险箱”如果你和我一样&#xff0c;在职业生涯中经历过几次“代码灾难”——比如不小心git push -f覆盖了同事的提交&#xff0c;或者手滑rm -rf删除了一个正在开发中的功能分支——那你一定会对“代码安全”这四个字有切肤之…...

嵌入式测试学习第 12天:串口基础概念:UART、波特率、数据位、校验位

串口基础概念&#xff1a;UART、波特率、数据位、校验位一、串口整体基础概念1、什么是UART串口2、串口实物真实图片① 主板/开发板排针串口② USB转TTL串口模块③ 老式DB9工业串口公头母头二、串口四大核心参数1、波特率概念常用标准固定值通俗理解测试场景2、数据位概念作用3…...

ElevenLabs情绪驱动API实战手册(2024企业级部署全链路):从F0曲线调制到微表情时序对齐

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs情绪驱动API核心架构与演进脉络 ElevenLabs 的情绪驱动 API 并非简单叠加情感标签的语音合成增强层&#xff0c;而是构建在多模态表征学习与实时声学参数调控双引擎之上的闭环系统。其核心架…...

AI智能体操作安卓设备:基于agent-droid-bridge的自动化实践

1. 项目概述&#xff1a;连接AI与安卓设备的桥梁 最近在折腾AI智能体&#xff08;Agent&#xff09;和自动化流程时&#xff0c;遇到了一个挺有意思的需求&#xff1a;如何让运行在服务器上的AI程序&#xff0c;直接去操作一台真实的安卓手机或模拟器&#xff0c;完成一些复杂的…...

【最新v2.7.1 版本安装包】OpenClaw 小白入门必看,零基础无需命令零代码保姆级教学

OpenClaw v2.7.1 一键安装部署教程&#xff5c;可视化傻瓜式搭建 ✨适配系统&#xff1a;Windows10/11 64 位 ✨当前版本&#xff1a;v2.7.1 版本&#xff08;虾壳云版&#xff09; ✨安装包大小&#xff1a;58.7MB 【点击下载最新安装包】https://xiake.yun/api/download/…...

ElevenLabs克隆成功率从31%飙升至96.7%:基于LPC共振峰校准+Prosody Transfer双引擎微调法(实测数据包已脱敏上传)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs语音克隆方法概览 ElevenLabs 提供了高保真、低延迟的语音克隆能力&#xff0c;其核心依赖于少量高质量语音样本&#xff08;通常 1–3 分钟&#xff09;与上下文感知的零样本/少样本微调技术…...