vscode 和 keil协同使用开发stm32程序,超详细教程

vscode 和 keil协同使用开发stm32程序


VSCODE 是一款广受好评的代码编辑器, KEIL 是常用的嵌入式开发工具但编程界面简陋。 将两个工具一起搭配使
用, 能大大提高我们的效率。
你可以把 VSCODE 专门用来编辑和编译, KEIL 用来对文件进行增删下载配置环境。 原始的 KEIL 代码编辑界面在编
辑和阅读上都十分的不方便, 只要你用过 VSCODE 的编辑界面就再也不想回去使用 KEIL 的代码编辑界面了。 如下
是同一份代码在 KEIL VSCODE 上呈现的不同效果。 KEIL 的阅读和编辑体验是远远不如 VSCODE

1. 安装vscode拓展

  1. 安装chinese插件

1699704386168

  1. 安装c/c++拓展

1699704423272

  1. 安装Keil Assitant

安装之后还要做一些关于这个扩展的设置才行。

1699704552922

请详细看一下右边的使用说明

点击设置

236b6235a435592b07cc676722ad363

进入 Keil Assitant 的扩展设置界面, 需要你填写你已经安装好的 Keil 程序的安装路径, 记得要填你自己安装 Keil
程序的安装路径, 因为到时候你要编译程序其实是 VSCODE 调用 Keil 的编译功能实现在 VSCOE 上编译工程文档的

1699704777555

2 .安装Mingw

下载链接

1699704964117

下载后点击这个

1699705004214

点击install

1699705049754

点击Continue

1699705096092

进入下载界面,百分百之后继续

1699705122708

MinGW Installation Manager 是一个用来管理 MinGW 的安装包的工具, 你可以用它来选择和下载你需要的编译器
和库。
如果你想配置 C 语言环境, 你至少需要安装以下几个 Package:
mingw-developer-toolkit: 包含一些开发工具, 如 make, gdb 等。
mingw32-base: 包含基本的 MinGW 运行时和头文件。
mingw32-gcc-g++: 包含 C++编译器。
mingw32-gcc-objc: 包含 Objective-C 编译器。
msys-base: 包含一个类似 Unix 的命令行环境。
你可以在 MinGW Installation Manager 的 Basic Setup 中找到这些 Package, 并且把它们都打上勾, 然后点击
Installation->Apply Changes 来安装它们。

勾选这几个

1699705214741

点击 Installation->Apply change->点击 Apply->安装

1699705260410

下载完之后点击close

3.配置环境变量

右键桌面此电脑->属性

a093a79ae431148b36fd46678f89649

点击高级系统设置

1699705550050

点击环境变量

1c4df20b5ac1b76a4689aeddf76b130

点击系统变量中的Path

6ec5c704903d280c9aa64e797d6ba65

将mingw的bin目录的路径粘贴过来

1699705757867

打开cmd命令行输入gcc --version ,显示GCC版本就代表成功

ba3ed7067b9563ba8d46da6b268597b

4. 打开Keil项目

打开vscode点击左上角打开文件夹,选择下图文件所在的文件夹,记住不要选中该文件

1699705970671

左边已经出现

1699706080651

点击编译下载图标就可以进行编译和下载了

74842f18886b6ed9322f8ecc6babb2a

编译成功

4ab0712773b45ccc81894becfa52a28
当然你也可以在vscode中编辑代码,在keil中编译下载

  • 中文乱码,点击vscode右下角选择编码格式为GBK

  • 红色波浪线不认识某些库的内容,就手动include这些库

### 解析 Import Error 的常见原因 当遇到 `ImportError: cannot import name 'Generic'` 错误时,通常意味着尝试从模块中导入的对象不存在或无法访问。此问题可能由多种因素引起: - 版本不兼容:不同库之间的版本冲突可能导致此类错误。 - 安装缺失:目标库未正确安装或路径配置有误。 - 导入语句不当:可能存在循环依赖或其他语法层面的问题。 ### 针对 Generic 类型的具体解决方案 对于特定于 `Generic` 的情况,考虑到 Python 中 `Generic` 是 typing 模块的一部分,在处理该类别的 ImportError 时可采取如下措施[^1]: #### 方法一:确认typing模块可用性 确保环境中已安装标准库中的 typing 模块,并且其版本支持所使用的特性。可以通过以下命令验证: ```bash python -c "from typing import Generic; print(Generic)" ``` 如果上述命令执行失败,则可能是由于 Python 或者相关扩展包的版本过低造成的。此时应考虑升级至更高版本的解释器以及对应的开发工具链。 #### 方法二:调整导入方式 有时直接通过顶层命名空间来获取所需组件会更稳定可靠。修改代码以采用这种做法可能会解决问题: ```python from collections.abc import Iterable # 如果是迭代器相关接口 from typing import TypeVar, Protocol # 对于协议泛型定义 T = TypeVar('T') class MyContainer(Protocol[T]): ... ``` 注意这里并没有显式提到 `Generic` ,而是利用了更为基础的数据结构抽象基类或是其他替代方案实现相同功能[^2]。 #### 方法三:排查环境变量设置 检查系统的 PYTHONPATH 虚拟环境配置是否正常工作。任何异常都可能导致某些第三方软件包找不到必要的资源文件而引发类似的错误提示。建议清理并重建项目专属的工作区以便排除干扰项的影响。 #### 示例修正后的代码片段 假设原始代码试图这样引入 `Generic` : ```python from some_module import Generic # 可能导致 ImportError ``` 改为遵循官方文档推荐的方式后变为: ```python from typing import Generic # 正确的做法 ```
评论 57
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机小混子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值