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

Keil+VSCode优化开发体验

目录

一、引言

二、详细步骤

1、编译器准备

2、安装相应插件

2.1 安装C/C++插件

2.2 安装Keil相关插件

3、添加keil环境变量

4、加载keil工程文件

5、VSCode中成功添加工程文件后可能出现的问题

5.1 编码不一致问题

6、在VSCode中进行编译工程以及烧录程序

7、效果展示

8、使用注意事项

三、总结


一、引言

前面,我们陆陆续续讲解了关于STM32的介绍、入门的点灯案例以及stm32中GPIO的相关介绍。在编写点灯案例的过程中我们使用的编译器时keil,我们很明显能发现,他和其他编译器在一些方面的差距,如快速进入某函数实现体或某文件中、代码提示等都没有像VSCode等编译器那么美观。

因此,我们接下来要说的就是如何去结合过去好用的编译器如vscode来进行stm32开发的代码编写,优化开发体验。


二、详细步骤

1、编译器准备

既然我们要使用VSCode,那么首先我们要有这个软件。因此先去vscode官网下载该软件:Visual Studio Code - Code Editing. Redefined,点击即可直接进入vsc的官网,然后进行下载安装即可,如若安装过程有何问题,可自行搜索vscode安装教程。

安装成功后启动VSCode后的页面大概长这样:

因为我已经使用过,所以和最初进入的页面会有些许差异,大概就是这样的。 


2、安装相应插件

接下来,就正式开始在VSCode中配置编译环境了。

2.1 安装C/C++插件

首先,我们需要安装相应插件,因为我们在编译器中需要使用C语言来进行代码的编写,所以首先要安装好C/C++的插件。

点击最左边一竖栏中第五个长着像四个方块的图标,就会进入扩展:工具页面,接着在搜索栏输入C即可搜索到如下图所示的插件,我们选择第一个插件,进行安装即可。

我这里已经安装了,所以那里显示的“禁用 卸载”.

安装好了以后,关于C语言编码的环境就有了。

2.2 安装Keil相关插件

然后为了顺利地通过VSCode去编译烧录keil的工程文件,还需要安装关于keil的插件,安装步骤如下:

同样是进入VSCode的扩展,然后在搜索一栏中搜索keil,就能找到关于keil的相关插件,然后安装“Keil Asssistant以及Embedded IDE”,步骤如下图所示


3、添加keil环境变量

把相关插件安装好了以后,因为实际上使用VSCode去编写代码实际上也是间接地使用了keil的环境,换句话说,此事VSCode可以看做是一个文本编辑器,而keil可看作是更底层的环境,我现在就是通过在VScode中写代码然后保存到底层keil中,编译和烧录同样也是要经过底层的keil实现。这个时候大家就会发现,这岂不是变麻烦了?确实是这样,不过好处就是能够优化我们编码的体验,如使用VSCode编写代码时界面更加好看了,同时还有用熟悉的快捷键一下进入某文件或函数实现体中,同时有这更多的代码提示等等优点。

因此,现在我们要做的就是让VSCode能够顺利找到我们的Keil,即添加keil的环境变量,如何做呢?

进入VSCode后,我们可以看见界面最左下角有个齿轮图标,我们点击【齿轮】,显示一个选项栏,再点击【设置】,就能进入VSCode设置界面,接着我们直接在【搜索栏】中输入keil快速索引到keil相关的配置部分,就能看见如下图所示界面,接着根据自己所使用的keil版本去选择添加keil路径的一栏,然后添加即可。 主要操作步骤如下图所示:

4、加载keil工程文件

正确安装好插件并且设置好keil所在路径后,我们就可以开始将keil工程文件添加到VSCode的工作空间了,具体步骤如下:

找到资源管理器下的状态栏中最后一个关于keil的选项KEIL UVISION PROJECT,然后展开它:就能看见旁边出现一个【彩色加号】,继续点击这个加号即可添加我们想要的工程文件了(注意要选择我们工程文件夹中的.uvprojx后缀名的文件)

以下图片展示的具体操作步骤:

添加工程文件后,VSCode就会对工程文件夹加载到此时的工作空间,可能会弹出如下图窗口:直接点击“是,信任此作者”即可,同时可勾上“信任父文件夹...”,具体操作如下图所示:

 然后我们还会看见在界面右下角还有个提示:keil project load done.switch workspace? 这个提示的主要意思就是 我们的keil工程文件已经成功加载到VSCode中了,是否要进入到该工作空间下?我们直接点击OK即可,这样我们才能在VSCode中看见我们的代码文件夹。

具体操作步骤如下图所示:

 OK后,就是如下图界面:


5、VSCode中成功添加工程文件后可能出现的问题

5.1 编码不一致问题

添加完工程文件后,我们点击User查看我们之前写的main.c文件内容,如下图所示:

很明显和我们在keil中的内容是一样的,同时在这里看还有代码彩色区分效果,同时鼠标移到代码上,还会有很好的代码提示,可见此时看起来是不是更加舒服了呢。

这个时候,有些同学可能会出现这样的问题:一点击main.c文件,直接蹦出一些乱码。。。(此时孩子感觉天都要塌了...),这是为什么呢?孩子不要慌,这是个小问题~:最大的可能就是编码不一致:即在keil中使用的编码和此时vscode中的编码不一样,如何解决呢?只需要在VSCode最底下一栏找到UTF-8或者GBK亦或是其他编码格式的显示然后点击它进行修改即可消除乱码,一切都回到了应该的样子 ~ ^ ^   具体操作步骤已经在上图展示出来了。

如果还不清楚也可以上网搜VSCode如何修改编码格式,就能看见很多详细的解决方法的。

6、在VSCode中进行编译工程以及烧录程序

最后,我们文件啥的都已经成功弄到vscode了,那么如何实现在VSCode中进行程序的编译和烧录呢?很简单,具体图标和操作如下图所示

我们进行编译试试


7、效果展示

最后,我们再在VSCode中烧录点灯程序看看是否能够成功吧

首先还是以原来的点灯案例代码为例,如下:

int main(void)
{
    // 1. 开启时钟
    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
    
    // 2. 配置GPIO工作模式
    GPIOA->CRL &= ~GPIO_CRL_CNF0;
    GPIOA->CRL |= GPIO_CRL_MODE0;
    
    GPIOA->CRL &= ~GPIO_CRL_CNF1;
    GPIOA->CRL |= GPIO_CRL_MODE1;
    
    GPIOA->CRH &= ~GPIO_CRH_CNF8;
    GPIOA->CRH |= GPIO_CRH_MODE8;
    
    // 3. 设置PA0、1、8为低电平 点亮三色灯
    GPIOA->ODR &= ~GPIO_ODR_ODR0;     
    GPIOA->ODR &= ~GPIO_ODR_ODR1;
    GPIOA->ODR &= ~GPIO_ODR_ODR8;
    
    // 4. 死循环保持状态
    while(1){}
}

进行烧录

烧录成功了!看看现象 

OK,现象是对的。 


8、使用注意事项

然后再给出一些注意事项:

1、如果我们在VSCode中修改代码了,然后进入keil时就会看见一个提示:

此时不用慌,直接点击是即可。

2、同时,如果我们在keil中修改了代码,此时我们直接回到已经打开的vsCode中查看的话是没有改变的,但实际上确实改变了,此时我们只需要在VSCode中关闭文件重新加载即可看见在keil中修改过的代码了。 


三、总结

本期我们讲解了关于VSCode在单片机开发编码带来的优化体验以及实现keil和VSCode的联合开发的详细步骤以及相关注意事项。


http://www.kler.cn/a/404381.html

相关文章:

  • 【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰
  • Linux 服务器使用指南:从入门到登录
  • 【pytorch-04】:线性回归案例(手动构建)
  • React基础知识一
  • 前端—Cursor编辑器
  • SpringBoot与MongoDB深度整合及应用案例
  • IOS证书获取(证书profile文件,p12私钥证书,证书私钥密码,Bundle ID)
  • 使用OkHttp进行HTTPS请求的Kotlin实现
  • 物理学:第一性原理
  • 【C语言】遗传算法matlab程序
  • Android 使用Retrofit 以纯二进制文件流上传文件
  • 微信小程序登录注册页面设计(小程序项目)
  • 【python】Python 虚拟环境的常用命令
  • 基于Multisim的汽车尾灯控制电路设计与仿真
  • 01-spring security认证笔记
  • 鸿蒙UI开发与部分布局
  • 城电科技|太阳能智能座椅对零碳园区建设有什么意义?
  • Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
  • oracle数据恢复—通过拼接数据库碎片的方式恢复Oracle数据的案例
  • Qt在designer设计师界面使用QSplitter
  • 如何配置多個子功能變數名稱共用同一IP地址?
  • ubuntu dpkg 删除安装包
  • Kafka 消费者全面解析:原理、消费者 API 与Offset 位移
  • Xcode 项目内 OC 混编 Python,调用 Python 函数,并获取返回值(基于 python 的 c函数库)
  • 鸿蒙NEXT开发案例:血型遗传计算
  • SpringBoot开发——Jar 包加密防止反编译