视频中的资料,其中如果你有其中一个版本就不用下载,vscode主要的是openocd-0.10.7
为了方便,将openocd目录/bin和gcc-arm-none-eabi-9-2019-q4-major-win32-sha2.exe


编辑到环境变量中,之后可以使用
openocd
来查看版本(注意: 你的环境变量中的bin中需要右openocd.exe文件)
可以安装[stm32cubemx](https://www.st.com/en/development-tools/stm32cubemx.html#overview)来快速初始化项目。其中注意安装时:
点击俩个就修改不了安装依赖库stm32f4x的安装目录了
安装后修改包安装目录和库

修改Repository Folder一开始是C盘,可以存放到你想要存放的盘中
之后Alt+U:

安装你想要的包。
然后就是基本STM32配置了
现在我手上就这块芯片,我们点亮一个LED灯
IDE我们使用的是Makefile
之后我们点击GENERATE CODE来下载源码(HAL库)
int main(void){/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){uint32_t i = 200;//添加这段HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);//添加这段HAL_Delay(i); //添加这段/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */}
以上添加的地方,其他都是自动生成的vscode插件
C/C++Bracket Pair Colorizer 2ChineseCortex-Debug
这四个插件Ctrl+shift+p选择C/C++编译配置(UI)
选择自己gcc.exe安装目录
一开始只有_DEBUG和UNICODE,点击项目下Makefile文件,选取:
# C definesC_DEFS = \-DUSE_HAL_DRIVER \-DSTM32F401xE
(不改动Makefile文件)最后俩行取消最前的-D和最后面的\的东西添加到上图中,C文件就不会报错
有个小BUG的话(uint_32数据类型会报错)那就修改为
make#可以生成build文件
接下来配置你的.vscode文件中的内容
{"tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe 生成活动文件","command": "D:/LearnApp/SDK/C/Feil/mingw64/bin/gcc.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "D:/LearnApp/SDK/C/Feil/mingw64/bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"},//按照以上格式添加这段{"type": "shell",//类型"label": "Build & Update", //运行任务中的名称"command": "D:/IOT/STM32/File/openocd-0.10.0/bin/openocd.exe", //执行的命令"args": ["-f", //文件"D:/IOT/STM32/File/openocd-0.10.0/scripts/interface/jlink-swd.cfg","-f","D:/IOT/STM32/File/openocd-0.10.0/scripts/target/stm32f4x.cfg","-c","program build/401CEU6fist.elf verify reset exit" //build/401CEU6fist.elf: 是你build里面的.elf文件名称和build路径],"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"},//按照最上面的格式添加这段{"type": "shell",//类型"label": "Build",//运行任务中的名称"command": "make",//执行的命令(需要在环境依赖中有配置)"args": [],"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}],"version": "2.0.0"}
在
创建launch.json文件
配置如下:
{// 使用 IntelliSense 了解相关属性。// 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"cwd": "${workspaceRoot}","executable": "build/401CEU6fist.elf","name": "Debug with OpenOCD","request": "launch","type": "cortex-debug","servertype": "openocd","configFiles": ["D:/IOT/STM32/File/openocd-0.10.0/scripts/interface/jlink.cfg","D:/IOT/STM32/File/openocd-0.10.0/scripts/target/stm32f4x.cfg"],"searchDir": [],"runToEntryPoint": "main","showDevDebugOutput": "none"}]}
可以点击
选择OpenOCD
我的硬件是只有stm32f401Cub6和jlink所以安装[jlink](https://bdbl-cm01.baidupcs.com/file/adffc0ecbb52bd47aa1ececd4426f756?bkt=en-82d2bca2fdceac3f82f2a5bd7904e2802c19272f15b03f35df9cc382d08f38527d0d2a9ccdbf1176&fid=3879021895-250528-822172901435206&time=1655206341&sign=FDTAXUbGERLQlBHSKfWqiu-DCb740ccc5511e5e8fedcff06b081203-ezj4PdHDky6R%2FNteVthnNBF%2FVgM%3D&to=401&size=29558340&sta_dx=29558340&sta_cs=1746&sta_ft=rar&sta_ct=7&sta_mt=7&fm2=MH%2CYangquan%2CAnywhere%2C%2Czhejiang%2Ccmnet&ctime=1543474016&mtime=1551493908&resv0=-1&resv1=0&resv2=rlim&resv3=5&resv4=29558340&vuk=915505575&iv=0&htype=&randtype=&tkbind_id=0&newver=1&newfm=1&secfm=1&flow_ver=3&pkey=en-bfa69ea03be8e5b8220ea8e745a0e8928775fec769ecbe844ab05d9149b6159b4895ad832cca34a8&sl=76480590&expires=8h&rt=sh&r=541797778&vbdid=3657023237&fin=J-LINK+OB%E5%85%A8%E5%A5%97%E8%B5%84%E6%96%99+%287%29.rar&fn=J-LINK+OB%E5%85%A8%E5%A5%97%E8%B5%84%E6%96%99+%287%29.rar&rtype=1&dp-logid=363740521003973650&dp-callid=0.1&hps=1&tsl=80&csl=80&fsl=-1&csign=lT6leRbagniuWRYqLfs9iDZPkWU%3D&so=0&ut=6&uter=4&serv=0&uc=2789754620&ti=c88239d10beef4d200398560ac500198d3d34b41a2bb32c2&hflag=30&from_type=0&adg=c_368e90098e47e61699dff3fbfe57c94e&reqlabel=250528_f_c0be4048169bb66d4dedf9e61b9289eb_-1_bda5ce09562815d23f7cbdfab03d5578&by=themis&resvsflag=1-0-0-1-1-1)
安装完成后我们打开终端->运行任务..->Build&Update(自己取的名字)
如果失败,错误信息是J-link not found的话安装zadig(win版)执行.exe文件后
找不到j-link就点击,图上的List All Devives
之后就可以选择了,会发现我们的Driver是j-link我们就点击Relpace Driver
之后会变成
就可以在vscode上执行Build&Update
不成功可以复制安装目录\openocd-0.10.0\scripts\interface\jlink.cfg到当前文件,修改名为jlink-swd.cfg
## SEGGER J-Link## http://www.segger.com/jlink.html#interface jlink# The serial number can be used to select a specific device in case more than# one is connected to the host.## Example: Select J-Link with serial number 123456789## jlink serial 123456789# adapter driver jlinktransport select swd
出现
说明安装成功,使用的STM32F401CUB6最小系统板上的LED等开始闪烁
符: STM32F401CUB6的原理图
