赞
踩
**
**
前些日子跟着B站的视频配置VSCODE的STM32开发环境,已经配置成功了,这里来记录一下配置过程。以STM32F103C8T6为例。
完成后,可以实现STM32CubeMx新建工程,VSCODE编写代码,可以一键编译、一键下载,可以使用DEBUG调试。
1、软件安装
(1)网上有很多VSCODE和STM32CubeMx的安装教程,这里不再赘述。VSCODE安装完成后,需要安装三个插件:1、C/C++(必装)2、Cortex-Debug(必装)3、Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code(选装)
(2)3、4、5这三个软件从链接网站中下载压缩包,分别将压缩包解压到C盘。解压后,如下图。
然后,在搜索栏搜索“环境变量”并打开,将GNU Arm Embedded Toolchain、mingw64、openocd-0.12.0这三个文件夹下的BIN文件夹路径,分别添加到环境变量中。要注意,添加完成后要连续点“确定”三次,退出。
打开mingw64下的bin文件夹,找到mingw32-make.exe,复制,在该目录下粘贴,并重命名为make。如下图所示。
至此,软件的安装已将完成,下面开始创建工程,并在VSCODE中调试,使vscode可以实现工程的编译、下载和调试。
2、使用STM32CubeMx生成STM32F103C8T6的工程文件,同样地,网上有很多配置教程,这里不在赘述。
STM32F103C8T6的PC13引脚接了一个LED,这里配置PC13为推挽输出(Output Push Pull),默认高电平。
配置串口一(可选)(建议配置,后面有支持printf和fprintf)
唯一注意的地方是在Proect Manager的ToolChain/IDE中选择“MakeFile”。
配置完成后,点生成代码即可。
3、配置完成后用VSCODE打开工程文件夹,并打开Scr文件夹下的main.c文件。如下图所示。
在上图界面,按快捷键ctrl+shift+P,打开C/C++:配置(UI)。第一次使用时需要搜索。后面使用会在最近使用中出现。如下图所示。
打开C/C++:配置(UI)后,修改“编译器路径”和“IntelliSense 模式”,如下图所示。编译器路径可能不需要修改。
从左侧工程中打开makefile文件,找到113行左右,将下图方框中的代码复制并修改格式。
将方框中的代码复制,并修改格式:将每行开头的“-I”删除,将每行最后的“\”删除,修改后如下面代码所示。
下面的代码就是头文件的包含目录。
Inc
Drivers/STM32F1xx_HAL_Driver/Inc
Drivers/STM32F1xx_HAL_Driver/Inc/Legacy
Drivers/CMSIS/Device/ST/STM32F1xx/Include
Drivers/CMSIS/Include
将上面的代码添加到C/C++:配置(UI)的“包含路径”中。注意,在${workspaceFolder}/**
后面按“回车”,然后复制。完成后如下图所示。
同样地,在makefile的104行左右,找到# C defines
,将下面的代码复制,并调整格式
USE_HAL_DRIVER
STM32F103xB
将这两句代码添加到C/C++:配置(UI)的“定义”中。如下图所示。
至此,在终端中输入“make”,就可以编译了。下图是输入make的图片和运行成功的图片。
4、使串口支持printf和fprintf(可选)(建议配置)
在makefile的145行左右,添加以下代码
-u_printf_float -u_fprintf_float
在main.c的/* USER CODE BEGIN 0 /和/ USER CODE END 0 */之间添加以下代码
//printf的重定向 //1、使用printf一定要加\n //2、使用时 包含stdio.h //3、makefile 145h 加-u_printf_float以支持输出浮点数 printf输出到设备 //4、makefile 145h 加-u_fprintf_float以支持fprontf输出浮点数 fprintf输出到文件 #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif PUTCHAR_PROTOTYPE { uint8_t temp[1]={ch}; HAL_UART_Transmit(&huart1,temp,1,0xffff);//要提前配置huart1,PA9_TX PA10_RX return ch; } int _write(int file, char *ptr, int len) { int DataIdx; for (DataIdx=0;DataIdx<len;DataIdx++) { __io_putchar(*ptr++); } return len; }
添加后如图所示
添加完成后,就可以在main中使用printf通过串口打印信息了。
注意!!!这里添加了
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
HAL_Delay(500);
实现LED的闪烁效果。
可以注释掉两句printf,只使用LED的闪烁来看效果。
重定向printf是为了以后使用。
5、使VSCODE支持一键“编译”和一键“编译及下载”。
下载时,使用的是STLINK -V2下载器。
如果使用最新版本的软件3、4、5,可能stlink -v2.cfg版本会出现警告,提示修改为stlink.cfg,这里的代码以stlink.cfg为例。
vscode上方菜单栏,选择终端,配置任务,选择C\C++:gcc.exe build active file
在生成的tasks.json中添加下面的代码
{ "version": "2.0.0", "tasks": [ { "type": "shell", "label": "Build", "command": "make", "args": [], "problemMatcher": [ "$gcc" ], "group": "build" }, { "type": "shell", "label": "Build & Update", "command": "openocd", "args": [ "-f", "C:/openocd-0.12.0/share/openocd/scripts/interface/stlink.cfg", "-f", "C:/openocd-0.12.0/share/openocd/scripts/target/stm32f1x.cfg", "-c", "program build/LED.elf verify reset exit" ], "problemMatcher": [ "$gcc" ], "group": "build", "dependsOn": "Build" } ] }
然后选择终端,运行任务找到“Build”和“Build & Update”,就可以实现一键“编译”和一键“编译及下载”。
6、使VSCODE支持DeBug调试
点击VSCODE左边的“运行和调试”按钮,选择“创建launch.jason文件”,选择“C/C++(GDB/LLDB)”,选择默认配置。
在生成的launch.json中将configurations中的内容删除,然后点右下方的添加配置,选择“Cortex Debug:OpenOCD”。
将其中的内容修改为下面的代码。
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "cwd": "${workspaceRoot}", "executable": "build/LED.elf", "name": "Debug with OpenOCD", "request": "launch", "type": "cortex-debug", "servertype": "openocd", "configFiles": [ "C:/openocd-0.12.0/share/openocd/scripts/interface/stlink.cfg", "C:/openocd-0.12.0/share/openocd/scripts/target/stm32f1x.cfg" ] } ] }
至此,在“运行和调试”中点击开始调试按钮,就可以进行调试了。
配置完基本工程后,日后开发可能会涉及到
1、修改工程文件夹的名字(英文名)
2、添加c文件和头文件
3、配置IIC、DMA等使用的文件
目前就想到这两个,如果以后再想到其他需要修改的地方,再来添加。
解决:
1、修改名字后,在makefile的16行左右,找到target,将工程名修改为最新;
在task.json(一键编译的任务)的24行左右,将工程名修改为最新;
在launch.json(DeBug的任务)的9行左右,将工程名修改为最新。
2、将添加的C文件放在“Scr”文件夹中;
将添加的头文件放在“Inc”文件夹中;
在makefile的37行左右,找到C sources,在最下方将添加的C文件路径补上即可(按照前面的格式)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。