共计 1703 个字符,预计需要花费 5 分钟才能阅读完成。
环境:Ubuntu 18.04
加上调试局部当前文章有些长了,去掉当前写了一篇只讲配环境建工程和下载的。
步骤
-
装置 VSCode、STM32CubeMX、STLink 驱动(如果用 STLink),参考链接如下:
VSCode
CubeMX
STLink
-
而后,装置 arm-none-eabi-gcc,这里笔者采纳新增 PPA 的形式进行装置。
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa sudo apt-get update sudo apt-get install gcc-arm-embedded
装置信息中显示所装置的版本为 7 -2018q2-1~bionic1。
- 而后,依照个别的办法应用 Cube 新建个点灯的工程(假如咱们点 PC13 上的灯),设置 HSE、设置 Debug、设置 GPIO、配置时钟树 …… 最初在 Project Manager 页面抉择 ToolChain 为”Makefile“而后生成代码。首次应用某种器件时须要装置对应的库,确认后期待片刻即可。
- 键入
code
关上 VSCode,装置插件 ”C/C++”,而后,用 VSCode 关上 Cube 生成的工程目录(比方你的工程要是叫”F4_blink“的话 Open Folder 的时候就选这个)。 -
VSCode 界面下按 F1,输出 Edit configurations 并抉择 Edit configurations(JSON),而后会关上一个 c_cpp_properties.json 的文件,默认的内容大略是上面这样的:
{ "configurations": [ { "name": "Linux", "includePath": ["${workspaceFolder}/**" ], "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "gnu11", "cppStandard": "gnu++14", "intelliSenseMode": "linux-gcc-x64" } ], "version": 4 }
局部条目须要做点改变。关上工程目录下的 Makefile 文件,把 C_INCLUDES 的内容搬到 inlcudePath 下,把 C_DEFS 的内容搬到 defines 下。留神,可能须要做些批改,比方原来的内容可能是 -ICore/Inc 这样格局的,去掉”-I“后参考上面内容的格局写。
{
"configurations": [
{
"name": "Linux",
"includePath": ["${workspaceFolder}/**",
"Core/Inc",
"Drivers/STM32F4xx_HAL_Driver/Inc",
"Drivers/STM32F4xx_HAL_Driver/Inc/Legacy",
"Drivers/CMSIS/Device/ST/STM32F4xx/Include",
"Drivers/CMSIS/Include"
],
"defines": [
"USE_HAL_DRIVER",
"STM32F401xC"
],
"compilerPath": "/usr/bin/arm-none-eabi-gcc",
"cStandard": "gnu11",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
-
而后,关上 Core/Src/main.c,熟练地敲出如下的点灯代码:(并保留)
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13); HAL_Delay(500);
- VSCode 中关上终端(TERMINAL,关上默认终端的快捷键为 Ctrl + \`),键入
make
进行编译,完结后会多一个 build 文件夹,外面有生成的.bin .elf 等文件。 -
插上 STLink 并接好线,键入
st-info --probe
看是否检测到调试器和连贯到的芯片,能够的话就持续键入如下指令:st-flash write ./build/ 你的指标文件.bin 0x08000000
- 烧录完后复位芯片就能看到灯闪起来了。
- 祝开发顺利!
正文完
发表至: visual-studio-code
2021-04-29