VSCode下开发STM32——基于Keil工程

VSCode下开发STM32——基于Keil工程

废话前言

相信很多同学入门STM32用的都是Keil,然后后面的开发也都是一直用它了(太巧了我也是!)。对于用惯了VS Code本颜狗我来说,Keil实在是长得太丑了。于是我就改了一下编辑器配置,它就变成了这样:
还是很难看对吧
还是很难看对吧。。。
而且Keil的自动补全,相比VS Code,也实在有点太弟弟了吧。于是我就开始折腾看怎么在VS Code上来开发STM32,最终实现了在VS Code上写代码、编译、烧写

具体步骤

其实总结起来就三步:

  • 安装VS Code
  • 修改一下包含头文件和宏定义,实现VS Code自动补全和提示
  • 写一个调用Keil的脚本,实现编译、下载

注意我们是在Keil原有工程上进行修改的,所以工程的管理(添加文件之类的操作)还是要在Keil里面来操作的

安装VS Code

首先到这里下载并安装VS Code(应该很多人都装好了吧)。然后你可以安装一些拓展、主题之类的。安利一下几个拓展(C/C++必须有,其它随意):

你也可以换个顺眼的字体,我用的Monaco,感觉很不错。
然后我们在工程根目录下,右键-Open with code(或者直接在VS Code里面打开文件夹),就像这样:
在这里插入图片描述

修改宏定义和头文件

我们在新建第一个工程的时候肯定都有设置过这个(相信很多人都忘记了):
在这里插入图片描述
注意红色框框里面的内容,这些其实就是宏定义,我们把它加入到sys.h(或者是system.h)里面:

#ifndef STM32F40_41xxx
#define STM32F40_41xxx
#define USE_STDPERIPH_DRIVER
#endif

然后我们再把一些用到的头文件添加进来,最后变成这样:

#ifndef STM32F40_41xxx
#define STM32F40_41xxx
#define USE_STDPERIPH_DRIVER
#include "misc.h"
#include "stm32f4xx_adc.h"
#include "stm32f4xx_dcmi.h"
#include "stm32f4xx_dma.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_it.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_spi.h"
#include "stm32f4xx_tim.h"
#include "stm32f4xx_usart.h"
#endif

在这里插入图片描述
这时候就有自动补全、提示和跳转了
自动补全:
自动补全
提示:
提示
查看/跳转定义:
查看定义

通过脚本调用Keil实现编译、下载

如果还要在Keil上编译下载那就得来回切,也太麻烦了。还好Keil的编译器是可以命令行调用的,具体可以看这里,然后我写了个bat脚本:

@echo off
REM 这里把UV设置成Keil安装地址
set UV=D:\sofeware\KeilMDK\UV4\UV4.exe
if "%1" == "" goto NOP
set UV_PRO_PATH=%cd%\USER\%1.uvprojx
if "%2" == "-b" (
    echo Init building ... 
    %UV% -j0 -b %UV_PRO_PATH% -o %cd%\build_log.txt 
    type build_log.txt
) else if "%2" == "-f" (
    echo Init flashing ...  
    %UV% -j0 -f %UV_PRO_PATH% -o %cd%\build_log.txt 
    type build_log.txt
) else (
    echo Init building ... 
    %UV% -j0 -b %UV_PRO_PATH% -o %cd%\build_log.txt 
    type build_log.txt
    echo Init flashing ... 
    %UV% -j0 -f %UV_PRO_PATH% -o %cd%\build_log.txt 
    type build_log.txt
)
if "%3" == "-f" (
    echo Init flashing ... 
    %UV% -j0 -f %UV_PRO_PATH% -o %cd%\build_log.txt 
    type build_log.txt
)
goto end

:NOP
echo No ProjectName
goto end

:end
exit

把上面的代码保存为complie.bat,修改UV为自己Keil的安装路径,然后放到STM32工程根目录,接下来我们就可以运行这个脚本编译下载了。

  • 只进行编译./complie.bat Template -b
  • 只进行烧写./complie.bat Template -f
  • 编译并下载./complie.bat Template
    在这里插入图片描述
    注意这里的Template是你的工程名

One More Thing

用VS Code还可以很方便地进行版本控制,比如我们这个暑假为了准备电赛做了很多项目,通过版本控制我只需要一个工程就行了,切换到不同的分支就瞬间切换到了另一个工程,超级方便!!
这是我们的一部分分支:
在这里插入图片描述
查看修改历史:
在这里插入图片描述

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值