当前位置: 首页 > Linux

【Linux+STM32】Linux(STM32)下使用CubeMX+VSCode点亮LED

时间:2023-04-06 23:51:24 Linux

环境:Ubuntu18.04添加调试部分后,文章有点长。去掉之后写了一篇文章,只讲配置环境的搭建和下载。安装VSCode、STM32CubeMX、STLink驱动(如果使用STLink)的步骤,参考链接如下:VSCodeCubeMXSTLink然后,安装arm-none-eabi-gcc,这里我使用新的PPA方式安装。sudoadd-apt-repositoryppa:team-gcc-arm-embedded/ppasudoapt-getupdatesudoapt-getinstallgcc-arm-embedded安装信息显示安装的版本为7-2018q2-1~bionic1。然后,使用Cube按照一般方法创建一个灯光工程(假设我们在PC13上点灯),设置HSE、Debug、GPIO、时钟树……最后在ProjectManager页面选择ToolChain为“Makefile”并生成代码。第一次使用某个设备时,需要安装相应的库,确认后稍等片刻即可。输入code打开VSCode,安装插件“C/C++”,然后用VSCode打开Cube生成的项目目录(比如你的项目叫“F4_blink”,打开Folder时选择这个)。在VSCode界面按F1,进入Editconfigurations,选择Editconfigurations(JSON),会打开一个c_cpp_properties.json文件。默认的内容大概是这样的:"/usr/bin/gcc","cStandard":"gnu11","cppStandard":"gnu++14","intelliSenseMode":"linux-gcc-x64"}],"version":4}一些条目需要改变。打开工程目录下的Makefile文件,将C_INCLUDES的内容移动到inlcudePath,将C_DEFS的内容移动到defines。请注意,可能需要进行一些修改。例如,原始内容的格式可能是-ICore/Inc。去掉“-I”后,参照下面内容的格式来写。{“配置”:[{“名称”:“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,快捷键打开默认terminal是Ctrl+\`),输入make进行编译,结束后会多出一个build文件夹,里面有生成的.bin.elf等文件。插上STLink并连好线,输入st-info--probe,看能否检测到调试器和连接的芯片,如果可以,继续输入以下命令:st-flashwrite./build/yourtargetfile.bin0x08000000编程完成后,复位芯片,可以看到灯在闪烁。祝开发顺利!