|
STM32开发之 VSCode+gcc环境编译 一、程序安装 1、VSCode:https://code.visualstudio.com/Download 好用到爆的文本编辑器,配合强大的插件,使你的开发效率大大提高。 2、Java:https://www.java.com/zh-CN/download/ STM32CubeMX的安装需要 JAVA运行环境(jre)。 3、STM32CubeMX:https://my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html 支持最新的 HAL库及 LL库,工程代码配置与生成工具,支持生成 IAR、Keil、STM32CubeIDE、Makefile等工程,这里使用其生成的 Makefile工程。 4、MinGW-w64:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/ 一个强大并实用的 C/C++ 编译器。安装完成后需要添加系统环境变量,可以利用 cmd命令:gcc -v测试。 5、arm-none-eabi-gcc:https://launchpad.net/gcc-arm-embedded/+download GUN的 arm的通用交叉编译链工具,基本上常用的 arm处理器均支持。同样的,安装完成后需要添加系统环境变量,可以利用 cmd命令:arm-none-eabi-gcc -v测试。 二、CubeMX工程生成 目前 STM32现在主推的库是 HAL库,当然还有个 LL库用于操作底层寄存器;对于 HAL库,官方专门推出了图形化软件 CubeMX来简化 HAL库下 STM32的初始化代码;我们只需要配置好相应的外设功能以及时钟树,点击生成代码,CubeMX便会生成相应工程文件,并且还支持多种 IDE工具,实乃居家旅行出门必备啊。咳,偏题! 首先,选择你的目标芯片,启动工程配置,这里就简单的弄个 LED控制跟 DEBUG配置。 串口配置就像下图那样,像我们平常一样,异步通讯,Baud rate:115200、8Bit、1Stop Bit
如果要使用 STLink等在线调试器,那么需要在下图的指示处选择你所需要调试方式:
三、VSCode环境部署 1、插件安装
首先,把从 STM32CubeMX创建出来的工程导入到 VS Code里面,得到:
打开命令窗口进行编辑配置(Ctrl+Shitf+P > Edit Configurations(JSON))
c_cpp_properties.json 主要有添加 include路径,编译器路径,宏定义等;设置好后,索引、编译就跟 keil一样方便。然后,它的配置修改如下:
注意:这个 json不允许有注释,所以,如果是像复制到你的文件里,记得把注释删了。 tasks.json 这个文件下 tasks 数组里的每一个对象都代表着一个任务。
注意:上面的 "command"选项中填的是 "make";实际上,在我们下载的 MinGW-w64编译器中,执行的是 mingw32-make.exe;但是,这里可以看到 mingw32-make.exe 文件名太长,并且不好记,因此我们可以将其复制并重命名为 make.exe 这样就与 Linux下的 make命令保持一致了;如果没有像前面说的那样复制出 make.exe,那么,在 "command"选项中填则是 "mingw32-make",同样的在执行编译操作时,键入的命令则是 mingw32-make。 settings.json 这个留着后面结合实例来说。 四、工程编译 当你配置完成上面的操作后,最最最好就是先保存所有文件,然后关闭 VS Code,再重新打开工程。 编译有两种: 1、点击窗口栏的 终端 -> 运行生成任务(快捷键 Ctrl+Shitf+B)
键入 make,最后按回车键。当编译完成后就会像下图这样显示编译文件大小:
五、编译清除 编译文件清除,只需要在终端命令台里键入 make clean就可以了,但是,但是,如果使用的是 cmd的shell,你会发现: 并没有清除掉编译出来的文件。这是为什么呢?可以在这里得到答案:https://github.com/STAT545-UBC/Discussion/issues/55 根据里面的描述可以总结为: 解决方法1:使用 Windows版本的 rm是 del,因此可以简单地用 rm替换成 del。但是要注意,这样做意味着您将无法使用 Git Bash shell,因为它不支持 del命令程序; 解决方案2:假设你已安装 Git Bash(没有那就安装 Git呗,都 0202了,不会还有人不用 Git吧,实在实在不想用 Git,那么就找个支持 rm的终端命令台,例如:msys2),那么你可以把终端命令台切换到 Bash上面 第一个就简单了,在 makefile里把 rm替换成 del,如下图所示:
然后,用这种操作去修改终端 Sell,不同项目对于选择不同的终端,有时候需要经常切换,不方便;那么就有了工作区 settings.json文件配置的作用了。 在 settings.json文件中,我们只需要配置如下操作:
如此一来,那么就只在该项目工作区内产生作用效果。 你看,颜色都不一样的:
|
| 谢谢分享 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版