IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 如何使用Visual Studio Code+STM32Cube MX优雅的编写STM32程序(1) -> 正文阅读

[嵌入式]如何使用Visual Studio Code+STM32Cube MX优雅的编写STM32程序(1)

(在Windows10操作系统上,基于STM32CubeMX arm-gcc和Openocd)

本人硬件开发为主,纯属野生程序员,自学51,STM8,STM32,S32K感觉一直断断续续从没入门,在写这篇稿子之前其实也是在同事的指导下用GCC开发STM32.简单来讲就是将HAL库按固定的文件架构移植到GCC,因为自己不会编写MakeFile,都是拷贝大师的MakeFile文件,按指导做小修改,一步一步添加路径,编辑器采用的是Source Insight。

其实整体来看跟今天写的主题是一样的,看到Visual Studio Code众多插件的完美代码补全,语法高亮等等,也决定记录一篇面向像我这样的小白零基础教程,过程参考很多网上资源,纯属记录过程笔记。如有不对的地方还请各位多多指点

一:软件准备

所需要的软件有:

MinGW64

直接下载解压至C盘根目录即可

MinGW64百度网盘地址:MinGW64

提取码:5894

openocd

(开源片上调试器:Open On-Chip Debugger)

openocd百度网盘地址:openocd

提取码:5896

GNU_Tool_Arm_Embedded(arm-none-eabi)

arm-none-eabi百度网盘地址:arm-none-eabi

提取码:5895

备注:以上三款软件下载解压到C盘根目录即可,把这个bin文件夹的目录添加到环境变量并点击确定保存

Visual Studio Code

(下载与安装很简单只需要注意安装过程下图选中即可)

?

STM32CubeMX

(这里就不写安装方法了,在网上找一找教程)

验证软件是否安装成功

桌面空白处按住Shift 键+鼠标右键,在右键窗口中打开PowerShell窗口,左击确定打开PowerShell终端。在PowerShell窗口中输入对应命令并按下回车,如果你得到了窗口输出的版本号,证明你软件安装正确且环境变量配置成功:

make -v 查看make版本

openocd -v 查看openocd版本

arm-none-eabi-gcc -v 查看gcc-arm版本

二:STM32CubeMX 生成

使有STM32CubeMX 生成标准模版,需要注意的是在Project Manager选项卡中,Toolchain/IDE选项选择Makefile

三:Visual Studio Code配置

1.安装插件:

在生成的程序模板中,以刚生成的LEDTESET工程为例,选中文件夹右击选择《通过Visual Studio Code打开》。

安装一下必要的插件

2.工程配置:

1)按F1键或者catrl+shift+P,输入:编辑配置UI选择

打开后随意打开一个C文件可能会发现很多语法报错,没关系我们接下来一个一个配置

C/C++:编辑配置(UI)

在打开的界面做如下修改:

特别说明:定义,每行一个定义下方USE-HAL-DRIVER 和 STM32F103xB由Makefile中复制过来

?

2)Make,Make clean,Update

在Main.c中写一个闪灯代码,终端界面输入make 编译无误

while (1)
 {
 ?/* USER CODE END WHILE */
 ? HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
 ? HAL_Delay(200);
 ?/* USER CODE BEGIN 3 */
 }
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
PS D:\STM32CubeMX\PROJECT\LED> make
..................................
arm-none-eabi-size build/LED.elf
 ? text ? ?data ? ? bss ? ? dec ? ? hex filename
 ? 3400 ? ? ?20 ? ?1572 ? ?4992 ? ?1380 build/LED.elf
arm-none-eabi-objcopy -O ihex build/LED.elf build/LED.hex
arm-none-eabi-objcopy -O binary -S build/LED.elf build/LED.bin
PS D:\STM32CubeMX\PROJECT\LED> 

输入make clean 清除编译文件发现报如下错误,如下图修修后再次在终端界面输入:make clean,发现build文件夹中删除了所有之前编译文件了

PS D:\STM32CubeMX\PROJECT\LED> make clean
rm -fR build
process_begin: CreateProcess(NULL, rm -fR build, ...) failed.
make (e=2): 系统找不到指定的文件。
make: [Makefile:182: clean] Error 2 (ignored)
PS D:\STM32CubeMX\PROJECT\LED> 

连接STLINK开发板与电脑,在终端界面输入:openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c 'program build/LED.bin exit 0x8000000' 下载代码到开发板

?

3)tasks.json编写

以上编译,清除,下载都是通过输入命令实现有点麻烦,我们需要添加task命令实现一键编译,下载。

{
 ? // See https://go.microsoft.com/fwlink/?LinkId=733558
 ?  // for the documentation about the tasks.json format
 ?  "version": "2.0.0",
 ?  "tasks": [
 ? ? ?  {
 ? ? ? ? ?  "label": "编译",
 ? ? ? ? ?  "type": "shell",
 ? ? ? ? ?  "command": "make -j4 all"
 ? ? ?  },
 ? ? ?  {
 ? ? ? ? ?  "label": "清理",
 ? ? ? ? ?  "type": "shell",
 ? ? ? ? ?  "command": "make -j4 clean", ? ? ? ? 
 ? ? ?  },
 ? ? ?  {
 ? ? ? ? ?  "label": "下载",
 ? ? ? ? ?  "type": "shell",
 ? ? ? ? ?  "command": "make -j4 all;openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c  'program build/LED.bin exit 0x8000000'"
 ? ? ?  }
 ?  ]
}

?

4)launch.json编写

点击运行和调试图标-》运行和调试-》选择C++(GDB/LLDB)

删除系统自带launch.json中的内容

点击左下角”添加配置“-》选择"{}Cortex Debug:openOCD"

进行内容修改

{
  // 使用 IntelliSense 了解相关属性。 
  // 悬停以查看现有属性的描述。
  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations":[
 ? {
 ? ? "cwd": "${workspaceRoot}",
 ? ? "executable": "build/LED.elf",
 ?  "name": "Debug Microcontroller",
 ? ? "request": "launch",
 ? ? "type": "cortex-debug",
 ? ? "showDevDebugOutput": false,
 ? ? "servertype": "openocd",
 ? ? "configFiles": [
 ? ? ? "interface/stlink-v2.cfg",
 ? ? ? "target/stm32f1x.cfg"
 ? ? ],
 ? ?  "preLaunchTask": "编译"  //调试前执行编译,防修改代码未编译
 ?  }
  ]
}

至此完成对STLINK联机调试

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:20:30  更:2021-09-18 10:22:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:25:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码