最近初学STM32,困于Keil的自动补全功能实在难用,于是想用VS Code写代码。在网上找一些教程教利用VS Code开发,配置过程非常繁琐,并且,我认为VS Code最好只是作为写代码的工具,调试、看外设寄存器等功能肯定没有原生的Keil好用,于是整理单纯利用VS Code写stm32代码的过程如下。
- 安装VS Code(直接去官网)和C/C++插件
- 在工程目录中建立.vscode文件夹,并新建settings.json和c_cpp_properties.json
- settings.json中写入以下内容:
{
"files.associations": {
"stm32f10x.h": "c"
},
"files.encoding": "gb2312",
"editor.detectIndentation": false,
"editor.tabSize": 2
}
由于程序的下载和调试还要到Keil中去,因此此处设置最好与Keil中一致,即编码为gb2312
- c_cpp_properties.json中写入以下内容:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/Keil_v5/ARM/ARMCC/include"
],
"defines": [
"USE_STDPERIPH_DRIVER",
"STM32F10X_MD",
"__CC_ARM"
],
"intelliSenseMode": "msvc-x64"
}
],
"version": 4
}
includePath中要包含所有头文件路径,一般由个人建立工程的习惯有关,**指递归搜索该文件夹及子文件夹。最后一项是一些基本的头文件,如 stdio.h,在 Keil 的安装路径下。
defines为工程中的宏定义,USE_STDPERIPH_DRIVER 说明使用标准外设库,STM32F10X_MD 说明芯片为中容量芯片,可根据实际情况更换。如果没有 __CC_ARM,则 uint16_t 等变量类型报错。
- 配置之后就可以利用VS Code优秀的自动补全功能了,同时有方便的“转到定义”功能,直接按住 Ctrl + 鼠标左键即可跳转,返回的快捷键为 Alt + ←。