码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【STM32开发笔记】搭建VSCode+PyOCD的STM32开发环境


    【STM32开发笔记】搭建VSCode+PyOCD的STM32开发环境

      • 一、安装软件
        • 1.1 安装STM32CubeMX
        • 1.2 安装VSCode
        • 1.3 安装Arm GNU Toolchain
        • 1.4 安装Make for Windows
        • 1.5 安装Python
        • 1.6 安装PyOCD
      • 二、安装插件
        • 2.1 VSCode插件
        • 2.2 PyOCD支持包
      • 三、创建项目
        • 3.1 创建STM32CubeMX项目
        • 3.2 查阅原理图
        • 3.3 修改引脚功能
        • 3.4 生成Makefile项目
      • 四、编辑/编译/下载/调试
        • 4.1 修改代码
        • 4.2 编译代码
        • 4.3 下载固件
        • 4.4 调试设置
        • 4.5 断点调试
      • 五、参考链接

    本文将介绍如何在Windows系统上搭建基于VSCode和PyOCD的开发环境,具体包括如下软件:

    • STM32CubeMX,用于修改配置,以及生成代码;
    • VSCode,用于编辑源代码文件;
    • Arm GNU Toolchain,用于源代码编译为目标文件;
    • Make for Windows,用于根据Makefile调用编译命令;
    • Python,PyOCD依赖Python,需要先安装;
    • PyOCD,用于固件下载,以及gdb调试;

    标题为了简短只写了VSCode和PyOCD,实际上需要使用以上六个软件。

    本文部分章节以STM32U083RC为例,由于PyOCD可以支持的MCU类型非常多;因此该方法不仅仅只适用于这一款MCU,而是适用于所有STM32的MCU(凡是PyOCD命令能够找到支持包的CMU均可以支持)。由于VSCode和PyOCD等软件都是跨平台的,因此本文介绍的方法同样适用于Linux系统和MacOS系统,仅需少量步骤调整。

    一、安装软件

    接下来介绍如何安装上述六个软件,如果部分软件你已经安装了,则可以跳过相关介绍。

    1.1 安装STM32CubeMX

    下载页面: https://www.st.com.cn/zh/development-tools/stm32cubemx.html

    ST官网需要注册之后,才能下载。

    1.2 安装VSCode

    下载页面: https://code.visualstudio.com/Download

    VSCode可以直接下载,不需要注册。

    1.3 安装Arm GNU Toolchain

    Arm GNU Toolchain 10.3-2021.10版本下载页面:https://developer.arm.com/downloads/-/gnu-rm

    最新的版(13.3)下载页面: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

    10.3 或者 13.3 都可以,实测发现10.3生成的代码体积稍微小一点点,都可以运行。

    下载exe或者zip解压都可以,需要注意的是:

    • exe安装过程中需要勾选添加到PATH环境变量;
    • zip解压后,需要手动将arm-none-eabi-gcc.exe所在目录添加到PATH环境变量;

    安装完成后,打开新的cmd窗口,执行如下命令:

    arm-none-eabi-gcc --version
    

    命令输出类似如下版本信息,即表示PATH环境变量配置成功:

    Untitled

    1.4 安装Make for Windows

    Make for Windows下载页面:https://gnuwin32.sourceforge.net/packages/make.htm

    安装完成后,需要手动将make.exe所在目录,添加到PATH环境变量。

    类似的,添加成功后,新打开cmd窗口,可以执行如下命令:

    make --version
    

    命令输出类似如下版本信息,即表示PATH环境变量配置成功:

    Untitled

    1.5 安装Python

    Python下载页面: https://www.python.org/downloads/

    安装过程中记得勾选:Add Python to environment variables

    Untitled

    安装完成后,可以执行如下命令测试是否正常加入环境变量:

    Untitled

    成功输出版本信息,即表示PATH环境变量配置成功。

    设置pip镜像站:

    pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
    pip config set global.trusted-host mirrors.ustc.edu.cn
    pip config set global.timeout 120
    

    1.6 安装PyOCD

    打开cmd窗口,执行如下命令,安装PyOCD:

    pip install pyocd
    

    安装过程输出如下:

    Untitled

    安装完成后,执行pyocd命令:

    Untitled

    输出了PyOCD具体使用方法,即表示安装成功。

    二、安装插件

    2.1 VSCode插件

    VSCode需要安装的插件:

    • C/C++ Extension Pack,用于支持C/C++语法高亮、代码提示;
    • Cortex-Debug,用于支持Arm Cortex-M内核MCU的调试;
    • Makefile Tools,用于支持Makefile语法高亮、执行构建;

    在VSCode的插件栏搜索即可安装,没啥难度。

    2.2 PyOCD支持包

    PyOCD需要安装STM32U0xx支持包,才能进行STM32U083调试,具体过程如下。

    首先,搜索STM32U08RC:

    Untitled

    接着,安装STM32U0xx支持包:

    Untitled

    安装成功后,将开发板通过USB线与PC连接,运行pyocd list命令:

    Untitled

    如果没有问题,则可以显示设备。

    三、创建项目

    3.1 创建STM32CubeMX项目

    1. 打开STM32CubeMX之后,通过菜单File→New Project开始创建项目,在弹出的界面中:

    Untitled

    • 在Commercial Part Number栏中输入STM32U083RC;
    • 在MCUs/MPUs List下方选中STM32U083RCTx;
    • 点击右上角Start Project按钮;
    1. 默认使用的是内部16MHz HSI作为时钟源,可以不用修改:

    Untitled

    3.2 查阅原理图

    NUCLEO-U083RC开发板原理图下载链接:https://www.st.com.cn/resource/en/schematic_pack/mb1932-u083rc-b01-schematic.pdf

    查阅开发板原理图文件,找到LED的部分:

    Untitled

    可以看到,PA5可以控制LED的亮灭。

    3.3 修改引脚功能

    1. 在Pinout View中找到PA5,并将其功能设置为GPIO_Output,如下图所示:

    Untitled

    1. 按Ctrl+S保存,选中合适的文件夹路径进行保存,例如我选中的E:\DIY\STM32U083\LedBlink。

    3.4 生成Makefile项目

    1. 切换到Project Manager标签页,选择Toolchain/IDE选择 Makefile,如下图所示:

    Untitled

    1. Code Generator部分,选中Generate peripheral initialization as a pair of ‘.c/.h’ per peripheral,如下图:

    Untitled

    1. 点击右上角的Gnerate Code开始生成代码,生成完成后弹窗如下:

    Untitled

    1. 点击Open Folder打开目录,可以看到生成的文件内容如下:

    Untitled

    四、编辑/编译/下载/调试

    4.1 修改代码

    修改main.c代码,将在开头的USER CODE BEGIN Includes代码段改为:

    Untitled

    将main函数的循环修改为:

    Untitled

    4.2 编译代码

    VSCode打开文件夹之后,点击Makefile插件的“生成文件”按钮,开始执行make命令:

    Untitled

    命令执行的最后,可以看到RAM和Flash占用数据的输出:

    Untitled

    4.3 下载固件

    使用如下命令,将编译的固件下载到开发板上:

    pyocd flash -t STM32U083RCTx -f 1000000 build\LedBlink.bin
    

    命令执行过程中会输出进度条:

    Untitled

    执行完成后,会输出下载速度。

    4.4 调试设置

    如下图所示,依次点击调试按钮,创建luanch.json,Cortex Debug:

    Untitled

    则会创建一个新的lunch.json文件:

    Untitled

    修改executable、serverType,并添加targetId属性:

    Untitled

    保存,到这里调试配置就设置完成了。

    4.5 断点调试

    打开main.c,在循环中打下断点:

    Untitled

    此时,按F5键,或者点击Debug标签页上的调试按钮:

    Untitled

    就可以开始调试了。

    默认的断点是main函数:

    Untitled

    直接F5继续,则可以运行到刚刚打下的断点处:

    Untitled

    好了,一切正常,可以顺利的进行开发了。

    五、参考链接

    1. STM32CubeMX下载页面: https://www.st.com.cn/zh/development-tools/stm32cubemx.html
    2. VSCode下载页面: https://code.visualstudio.com/Download
    3. Arm GNU Toolchain 10.3下载页面: https://developer.arm.com/downloads/-/gnu-rm
    4. Arm GNU Toolchian 最新13.3下载页面: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
    5. Make for Windows下载页面:https://gnuwin32.sourceforge.net/packages/make.htm
    6. Python下载页面: https://www.python.org/downloads/
    7. PyOCD主页:https://pyocd.io/
    8. NUCELO-U083RC开发板介绍页面: https://www.st.com.cn/zh/evaluation-tools/nucleo-u083rc.html
    9. NUCELO-U083RC开发板原理图: https://www.st.com.cn/resource/en/schematic_pack/mb1932-u083rc-b01-schematic.pdf
  • 相关阅读:
    CSS Grid 布局
    Revit导入Cad图元丢失不正确解决和链接CAD功能
    iNav开源代码之Aocoda-RC F405V2 Mark4 7“ PNP适配
    实验1 线性回归 实操项目1——糖尿病情预测
    【Java】对象处理流(ObjectOutputStream和ObjectInputStream)
    Java集合框架之Vector源码分析
    基于CNN-GRU-Attention的时间序列回归预测matlab仿真
    树状图怎么画?推荐这个好用的在线树状图软件!
    基于Java毕业设计智慧社区信息管理系统开发源码+系统+mysql+lw文档+部署软件
    Python+超市进销存 毕业设计-附源码211549
  • 原文地址:https://blog.csdn.net/xusiwei1236/article/details/140412638
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号