STM32F407 | Embedded IDE01 - vscode搭建Embedded IDE开发环境(支持JLINK、STLINK、DAPLINK)

导言


Embedded IDE官网:https://em-ide.com/docs/intro
我猜肯定有部分人使用SI + Keil开发STM32项目,也有vscode + Keil开发STM32程序。SI或vscode编写代码,然后切换Keil编译、下载、调试程序。有一段时间,我也是这么干的。但是,程序切换来,切换去,把我整得特别难受,最终还是忍受着远古开发工具的环境,纯Keil开发。在参与新的项目开发时,有人向我推荐一款vscode插件Embedded IDE。说很好用,务必尝试一下。
经过一段时间的使用,最终我决定后续所有的项目开发都将使用vscode + Embedded IDE插件 + Keil编译器(需要安装Keil软件)。废话不多说,开始实践一遍。
在这里插入图片描述
如上图所示,本次实验使用安富莱的开发板 + J-LINK。
项目源码:https://github.com/q164129345/MCU_Develop/tree/main/eide_example

一、CubeMX


在这里插入图片描述
如上图所示,生成Keil工程。
在这里插入图片描述
说白了,就是一个Keil工程。

二、Keil


在这里插入图片描述
在这里插入图片描述
如上图所示,简单配置一下Keil。
在这里插入图片描述
接着,简单写一个心跳灯程序,烧录到开发板试试,确保Keil工程没有问题。
在这里插入图片描述
编译成功。
在这里插入图片描述
烧录程序也成功。

三、vscode


3.1、安装vscode插件

在这里插入图片描述
如上图所示,安装两个重要的插件。
在这里插入图片描述
安装完插件后,进入EIDE插件,如上图所示。

3.2、EIDE环境配置

3.2.1、安装实用工具

在这里插入图片描述
如上所示,安装built-in里的软件。
在这里插入图片描述
如上图所示,external只安装两个软件。

3.3、打开插件配置

在这里插入图片描述
如上所示,告诉EIDE,Keil的编译器所在位置。另外,记得勾选Axf To Elf,否则没办法烧录程序。我之前漏了这里,折腾了很久很久。

3.4、导入Keil项目

在这里插入图片描述
在这里插入图片描述
如上所示,进行Keil项目导入。
在这里插入图片描述
选择Yes,将EIDE的项目跟Keil项目放在一起,方便后续分别打开EIDE项目或者Keil项目。
在这里插入图片描述
如上所示,刚才在Keil编写的代码还在。
在这里插入图片描述
尝试一下编译,编译成功并且生成hex、s19、bin文件。此时,还不能下载程序到开发板!!

3.5、构建配置

在这里插入图片描述
在这里插入图片描述
如上图所示,构建配置里的构建器选项,跟Keil软件的魔术棒里的配置一样,真的是从Keil导入进来的!!!!

3.6、烧录配置(下载程序)

3.6.1、J-LINK

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

3.6.2、ST-LINKv2

方法一:
在这里插入图片描述
如上所示,ST-LINK下载程序ok,ST-LINK不需要关心芯片的信号。

方法二(OpenOCD):
在这里插入图片描述

3.6.3、DAP-LINK

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/64082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光谱相机的工作原理

光谱相机的工作原理主要基于不同物质对不同波长光的吸收、反射和透射特性存在差异,以下是其具体工作过程: 一、光的收集 目标物体在光源照射下,其表面会对光产生吸收、反射和透射等相互作用。光谱相机的光学系统(如透镜、反射镜…

ThinkPHP接入PayPal支付

ThinkPHP 5接入PayPal 支付,PayPal的流程是服务器请求Paypal的接口下单(需要传订单id/支付成功的重定向地址/支付失败的重定向地址),接会返回一个支付地址,项目服务器把地址返给用户,用户打开链接登录Paypa…

stream流的toMap

假设有这么一个类: import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors;public class Student {private int id;private String name;public Student(int id, String name) {this.id id;…

html + css 淘宝网实战

之前有小伙伴说,淘宝那么牛逼你会写代码,能帮我做一个一样的淘宝网站吗,好呀,看我接下来如何给你做一个淘宝首页。hahh,开个玩笑。。。学习而已。 在进行html css编写之前 先了解下网页的组成和网页元素的尺寸吧 1.网页的组成 …

神经网络、深度学习、卷积神经网络

好的!我会尽量详细且易懂地为你解释这些概念,并在最后用简单直白的语言总结一下。 1. 神经网络思想 神经网络是灵感来自于生物大脑神经元的工作原理,是一种模仿人类大脑处理信息的方式来设计的数学模型。我们的大脑由亿万个神经元组成&…

设计模式01:创建型设计模式之单例、简单工厂的使用情景及其基础Demo

一、单例模式 1.情景 连接字符串管理 2.好处 代码简洁:可全局访问连接字符串。性能优化:一个程序一个连接实例,避免反复创建对象(连接)和销毁对象(连接)。线程安全:连接对象不会…

【不太正常的题】LeetCode.232:用栈的函数接口实现队列

🎁个人主页:我们的五年 🔍系列专栏:初阶数据结构刷题 🎉欢迎大家点赞👍评论📝收藏⭐文章 🚗 1.问题描述: 题目中说了只能使用两个栈实现队列,并且只能使用…

Linux搭建text-generation-webui框架,安装通义千问大模型,开放对外api,voxta测试对话图文教程

目录 text-generation-webui部分 开放对外API 通义千问部分 远程API对话测试部分 text-generation-webui部分 本来不想发这个文章的,但是自己部署的时候看了挺多人的帖子,很多发的不全面,要么就是跟着他们流程走有些小问题啥的&#xff…

QT程序发布后,mysql在其它电脑设备无法连接数据库

QT程序发布后,mysql在其它电脑设备无法连接数据库 D:\mysql-5.7.24-winx64\lib, mysql-5.7.24-winx64是一个压缩包,用于启动mysql服务,创建数据库 压缩包 解决方法: 拷贝库到exe的相同目录,libmysql.dll,libmysql.li…

ElasticSearch 的核心功能

要深入理解 ElasticSearch 的核心功能,需要全面掌握其 全文搜索、分析、聚合 和 索引生命周期管理(ILM) 的设计原理和实际应用。 1. 全文搜索 ElasticSearch 的全文搜索是其核心功能之一,依赖于倒排索引和强大的分词、相关性评分…

在Nginx部署Web应用,如何保障后端API的安全

1. 使用HTTPS和http2.0 参考:Nginx配置HTTP2.0_nginx 支持 2.0-CSDN博客 2. 设置严格的CORS策略 通过add_header指令设置CORS头。 只允许来自https://frontend.yourdomain.com的请求访问API location /api/ {if ($http_origin ~* (https://frontend\.yourdomai…

Nginx单向链表 ngx_list_t

目录 基本概述 数据结构 接口描述 具体实现 ngx_list_create ngx_list_init ngx_list_push 使用案例 整理自 nginx 1.9.2 源码 和 《深入理解 Nginx:模块开发与架构解析》 基本概述 Nginx 中的 ngx_list_t 是一个单向链表容器,链表中的每一个节…

es快速扫描

介绍 Elasticsearch简称es,一款开源的分布式全文检索引擎 可组建一套上百台的服务器集群,处理PB级别数据 可满足近实时的存储和检索 倒排索引 跟正排索引相对,正排索引是根据id进行索引,所以查询效率非常高,但是模糊…

软件需求建模方法

软件需求建模是一个涉及多个学科的领域,其研究方向广泛且多样。以下是一些主要的研究方向: 1. 需求工程方法:研究如何更有效地收集、分析、规格化和验证软件需求。这包括新的需求工程方法论和工具的开发。 2. 需求管理:关注需求…

软件项目需求分析的实践探索(1)

一、项目启动与规划 组建团队 包括项目经理、系统分析师、业务分析师以及可能涉及的最终用户代表和领域专家等。例如,开发一个医疗管理软件,就需要有医疗行业的专家参与,确保对医疗业务流程有深入理解。明确各成员的职责,如系统分…

wordpres当前分类调用父分类的名称和链接

在WordPress中&#xff0c;如果你想在当前分类页面调用并显示父分类的名称和链接&#xff0c;你可以使用以下代码片段&#xff1a; <?php // 获取当前分类的ID $cat_id get_queried_object_id();// 获取当前分类的父分类ID $parent_id get_term($cat_id, category)->…

前端Python应用指南(三)Django vs Flask:哪种框架适合构建你的下一个Web应用?

《写给前端的python应用指南》系列&#xff1a; &#xff08;一&#xff09;快速构建 Web 服务器 - Flask vs Node.js 对比&#xff08;二&#xff09;深入Flask&#xff1a;理解Flask的应用结构与模块化设计 在上一篇博文中&#xff0c;我们深入探讨了Flask框架&#xff0c;…

网络管理-期末项目(附源码)

环境&#xff1a;网络管理 主机资源监控系统项目搭建 &#xff08;保姆级教程 建议点赞 收藏&#xff09;_搭建网络版信息管理系统-CSDN博客 效果图 下面3个文件的项目目录(python3.8.8的虚拟环境) D:\py_siqintu\myproject5\Scripts\mytest.py D:\py_siqintu\myproject5\Sc…

MySQL 常用程序介绍

以下是一些常用的MySQL程序&#xff1a; 程序名作⽤mysqldMySQL的守护进程即 MySQL 服务器&#xff0c;要使⽤MySQL 服务器 mysqld必须正在运⾏状态mysql MySQL客⼾端程序&#xff0c;⽤于交互式输⼊ SQL 语句或以批处理模式从⽂件执⾏SQL的命令⾏⼯具 mysqlcheck⽤于检查、修…

Redis篇--常见问题篇4--大Key(Big Key,什么是大Key,影响及使用建议)

1、概述 大Key&#xff1a;通常是指值&#xff08;Value&#xff09;的长度非常大&#xff0c;实际上键&#xff08;Key&#xff09;长度很大也算。通常来说&#xff0c;键本身不会很长&#xff0c;占用的内存较少&#xff0c;因此判断一个键是否为bigKey主要看它对应的值的大…