环境:Ubuntu 18.04
加上调试局部当前文章有些长了,去掉当前写了一篇只讲配环境建工程和下载的。
步骤
装置VSCode、STM32CubeMX、STLink驱动(如果用STLink),参考链接如下:
VSCode
CubeMX
STLink
而后,装置arm-none-eabi-gcc,这里笔者采纳新增PPA的形式进行装置。
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppasudo apt-get updatesudo 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
- 烧录完后复位芯片就能看到灯闪起来了。
- 祝开发顺利!