STM32CubeIDE的MCU开发_stm32cubeide免费吗-程序员宅基地

技术标签: stm32  嵌入式开发  mcu  

        以前做stm32嵌入式开发均使用的是破解版的keil软件,现在工作需要无法按照此步骤进行,最近针对ST官方免费软件STM32CubeIDE进行了相关调研工作。

1 STM32CubeIDE简介

        目前主流的STM32开发环境是ARM公司的KEIL软件, 由于KEIL对于STM32大部分型号是收费的, 使用需要破解, 存在版权问题。 并且使用KEIL编译大型工程, 编译太慢了, 编译耗时长。

        STM32CubeIDE是ST公司推出的免费多功能STM32开发工具,采用了行业标准的开放式许可条款,为简化和加快基于STM32的嵌入式设计,新增了STM32专用功能,包括功能强大的STM32CubeMX微控制器配置和项目管理工具。用户能够最大限度地提高产品的功能和性能,缩短研发周期,降低开发成本。

        STM32CubeIDE是一个多操作系统集成开发工具,它是STM32Cube软件生态系统的一部分。STM32CubeIDE具有STM32 MCU和MPU的外设配置、代码生成、代码编译和调试功能,它基于Eclipse/CDT框架和GCC工具链进行开发,GDB进行调试。STM32CubeIDE集成了STM32的配置和项目创建功能,提供了一体化的工具体验,节省安装和开发时间。在开发过程中任何时间,用户都能返回到外设/中间件的初始化和配置,并且在不影响用户代码的情况下生成初始化代码。

2 STM32CubeIDE下载与安装

2.1 STM32CubeIDE下载

        进入意法半导体的官网 STM32CubeIDE - STM32的集成开发环境 - STMicroelectronics,选择最新版本,按照提示下载STM32CubeIDE软件安装包,如下图所示。

图1 官网获取最新安装包

       例如,作者的电脑是windows操作系统,选择了当前最新版本1.6.1 STM32CubeIDE-Win的安装包进行下载。

2.2 STM32CubeIDE安装

        软件下载成功后,解压缩软件安装包,右键.exe文件 —> 以管理员身份运行,注意:安装目录中不允许有中文路径

 图2 管理员身份运行

        弹出的界面,点击Next。

 图3 安装界面

        弹出的界面,点击I Agree。

图4 同意安装

        选择安装路径,点击Next。

图5 选择安装路径

        勾选“SEGGER J-Link drivers”和“ST-LINK drivers”,点击“Install”,等待安装完成。

图6 勾选调试工具

        安装完成,点击Next。

图7 安装完成

        弹出的界面,点击Finish。

图8 Finish

2.3 STM32CubeIDE器件包安装

        双击软件STM32CubeIDE 1.6.1.exe  ,点击help —> Manage Embedded Software Packages 。

图9 安装器件包

        根据项目需要选择安装STM32器件库,例如要使用STM32F1系列和STM32F4系列,勾选最新的器件库,点击Install Now直接安装即可。

图10 STM32F1系列器件包

图11 STM32F4系列器件包

        安装成功后勾选框显示为绿色,查看器件包的安装路径,点击Window —> Preferences 。

图12 查看已器件包路径

        在STM32Cube —> Firmware Updater中可以看到器件库的默认安装路径,此路径也可以自行修改。

图13 器件包默认路径

        查看此路径,可以看到已经安装成功的器件库,项目开发就可以正常使用该系列的STM32芯片。

图14 已安装器件包文件夹

3 STM32CubeIDE的使用

        下面以STM32F407ZGT6型号为例,开发和调试LED闪烁、串口中断回环的功能,介绍STM32CubeIDE软件的基本使用方法。

3.1 资料准备

        STM32F407ZG - 带DSP和FPU的高性能基础系列ARM Cortex-M4 MCU,具有1 MB Flash、168 MHz CPU、ART加速器、以太网和FSMC - STMicroelectronics

《STM32参考手册》,用于查询STM32各类寄存器的使用方法;

《STM32数据手册》(产品规格书),用于查询STM32的物理结构(总线架构、时钟树、管脚功能等);

《板卡原理图》

3.2 搭建工程

        点击File —> New —> STM32 Project 。

图15 新建工程

        弹出的界面,在1中搜索项目使用的STM32芯片型号,点击2处,然后再点击Next。

图16 搜索STM32芯片型号

        设置project名,点击Finish 。

图17 工程命名

        此时弹出与STM32CubeMX相同的图形化外设配置界面,根据本次例程的功能,我们需要配置时钟、IO、串口、中断等功能。

        首先配置时钟管脚, 选择晶振(板卡上配置频率为8MHz的)作为外部高速时钟(HSE),外部低速时钟(LSE)暂时不需要。

图18 配置外部高速时钟HSE

        配置系统管脚,debug用,选择4pin的jtag功能。

图19 配置调试接口

        配置LED IO引脚为输出功能引脚,查看板卡原理图,LED0连接在PF9引脚、LED1连接在PF10引脚,那么分别将PF9和PF10配置为OUTPUT引脚。

图20 配置LED0管脚

图21配置LED1管脚

        修改引脚命名。

图22 修改LED0名

图23 修改LED1名

        配置串口,本次测试使用USART3,配置USART的IO引脚、波特率、中断等参数。

图24 配置串口3管脚

图25 配置串口3中断

        开启USART3的中断功能,由于本次测试仅使用一个串口中断的功能,所以在界面中的中断优先级分组、抢占优先级和子优先级按默认设置即可。

图26 配置串口3中断

        配置时钟树,此处将APB1配置为最高的42MHz,APB2配置为最高的84MHz。

图27 配置时钟树

        STM32F407时钟树,HSE(高速外部时钟信号)、LSE(低速外部时钟信号)、HSI(高速内部时钟信号)、LSI(低速内部时钟信号)。

图28 STM32F4时钟树结构

        工程设置,先查看工程名和路径,再选择生成的Code格式。

图29 确认工程名和路径

图30 勾选生成的code特征

        保存.ioc文件,生成project code模板。

图31 生成code

        可以看到生成的工程文件夹结构。

图32 生成的project结构

3.3 用户程序编写

        用户程序的编写只能在注释有“USER CODE BEGIN”与“USER CODE END”之间进行,防止修改.ioc文件后重新生成project code时将已经编写的用户程序覆盖掉。

图33 用户程序编写区域

3.4 编译、调试

        工程编译。

图34 工程编译

        设置调试工具。

图35 调试工具设置

        选中当前工程,设置调试器,本次测试使用JLINK进行调试,因此调试探头选中SEGGER J-LINK,接口选中JTAG接口,调试初始速度默认为4000kHz。

图36 选择jlink

        1表示下载程序(.elf文件),2表示Debug程序。

图37 下载与调试

        下载程序成功。

图38 程序下载

        Debug程序成功,程序运行暂停在main函数内的第一条语句。

图39 程序debug

        全速运行程序后,从板卡上可以看到led0(红色)开始闪烁/led1(绿色)常亮,这是因为我们在STM32CubeIDE的.ioc中配置了这两个IO(默认低电平,低电平常亮),但是应用程序中只针对led0做了翻转功能,所以现象就是红灯闪烁、绿灯常亮。

图40 LED0灭、LED1亮

图41 LED0亮、LED1亮

图42 STM32CubeMX中GPIO的默认状态

        测试串口中断回环功能。

图43 串口中断回环测试

5 STM32CubeIDE软件使用遇到的问题记录

5.1 设置tab键与空格键的关系(tab == 4 spaces)

  1. Window ——> Preferences
  2. General ——> Editors ——> Text Editors
    1. 选中"Insert spaces for tabs"
    2. 选中"Show whitespace characters(configure visibility)"
      1. 在(configure visibility)中可以根据使用习惯显示or不显示space/enter等
  3. C/C++ ——> Code Style ——> Formatter
    1. 点击"Formatter"页面中的"New..."新建格式
    2. 在"Profile name"中输入"spaces_4_tab"
    3. 点击"OK"
    4. 在弹出的Profile 'spaces_4_tab'页面中,在"Tab policy”中将"Tabs only"改为"Spaces only"
    5. 点击"Apply" ——> "OK"
  4.  点击"Apply” ——> "Apply and Close"
  5. 可以在.c和.h文件中使用Tab键进行4个spaces的快捷操作

5.2 STM32CubeIDE在无联网的情况下加载设置MCU Packages

  1. Help ——> Manage Embedded Software Packages
  2. 点击"From Local..."
  3. 此时需要提前准备好在官网下载的STM32系列的配置包
    1. 网页上搜索"STM32Cube MCU & MPU Packages - Products"
    2. 进入ST官网配置包页面后,选择"Product selector",下载需要的MCU配置包
    3. 这里以STM32CubeF1为例
    4. 下载Patch_CubeF1和STM32CubeF1,实际加载使用的为STM32CubeF1,从官网上看到当前下载的STM32CubeF1版本为1.8.0
  4. 选中刚刚准备好的STM32CubeF1包,注意该包的版本为1.8.0,等待软件加载配置包
  5. 加载完成后可在Embedded Software Packages Manager页面的STM32F1下看到安装的配置包及其版本

5.3 报错“The Firmware Package (STM32Cube FW_F1 V1.8.5) or one of its dependencies required by the Project is not available in your STM32CubeMX Repository”

  1. 方法1
    1. 在.ioc中,找到ProjectManager下的Project,可以看到Frimware Package Name and Version默认按照最新的版本(当前最新的版本为"STM32Cube_FW_F1 V1.8.5")进行使用,此处将"Use latest available"取消,同时将"STM32Cube_FW_F1 V1.8.5调整为STM32Cube_FW_F1 V1.8.0"即可正常
  2. 方法2
    1. 新建STM32工程时,输入完Project Name之后,注意不要点击"Finish",点击"Next"
    2. 这里会进入Firmware Library Package Setup页面,这里可以进行配置包的选择,默认为最新的"V1.8.5",手动切换为"V1.8.0"后,点击"Finish"即可

5.4 需要使用.hex文件或.bin文件进行单独烧写

        STM32CubeIDE软件默认编译后不会生成.hex或者.bin文件,需要对软件进行设置

  1. Project ——> Properties
  2. C/C++ Build ——> Settings
  3. MCU Post build output ——> 选中"Convert to binary file (-O binary)"和"Convert to Intel Hex filr (-O ihex)" ——> Apply ——> Apply and Close
  4. 重新编译,可以在工程路径的Debug文件夹中找到对应的bin文件和hex文件

6 STM32CubeIDE使用小结

  1. 使用STM32CubeMX的图形化界面生成和修改底层驱动,可操作性更强、入门难度更小、开发效率更高,我们只需要将重心放在应用程序的开发上即可;
  2. STM32CubeIDE软件是免费软件,无需破解,程序运行大小不受影响,对于我们进行STM32嵌入式开发的成本更低。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_22324309/article/details/120024616

智能推荐

leetcode 172. 阶乘后的零-程序员宅基地

文章浏览阅读63次。题目给定一个整数 n,返回 n! 结果尾数中零的数量。解题思路每个0都是由2 * 5得来的,相当于要求n!分解成质因子后2 * 5的数目,由于n中2的数目肯定是要大于5的数目,所以我们只需要求出n!中5的数目。C++代码class Solution {public: int trailingZeroes(int n) { ...

Day15-【Java SE进阶】IO流(一):File、IO流概述、File文件对象的创建、字节输入输出流FileInputStream FileoutputStream、释放资源。_outputstream释放-程序员宅基地

文章浏览阅读992次,点赞27次,收藏15次。UTF-8是Unicode字符集的一种编码方案,采取可变长编码方案,共分四个长度区:1个字节,2个字节,3个字节,4个字节。文件字节输入流:每次读取多个字节到字节数组中去,返回读取的字节数量,读取完毕会返回-1。注意1:字符编码时使用的字符集,和解码时使用的字符集必须一致,否则会出现乱码。定义一个与文件一样大的字节数组,一次性读取完文件的全部字节。UTF-8字符集:汉字占3个字节,英文、数字占1个字节。GBK字符集:汉字占2个字节,英文、数字占1个字节。GBK规定:汉字的第一个字节的第一位必须是1。_outputstream释放

jeecgboot重新登录_jeecg 登录自动退出-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏3次。解决jeecgboot每次登录进去都会弹出请重新登录问题,在utils文件下找到request.js文件注释这段代码即可_jeecg 登录自动退出

数据中心供配电系统负荷计算实例分析-程序员宅基地

文章浏览阅读3.4k次。我国目前普遍采用需要系数法和二项式系数法确定用电设备的负荷,其中需要系数法是国际上普遍采用的确定计算负荷的方法,最为简便;而二项式系数法在确定设备台数较少且各台设备容量差..._数据中心用电负荷统计变压器

HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板_网页设计成品百度网盘-程序员宅基地

文章浏览阅读7k次,点赞4次,收藏46次。HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业_网页设计成品百度网盘

【Jailhouse 文章】Look Mum, no VM Exits_jailhouse sr-iov-程序员宅基地

文章浏览阅读392次。jailhouse 文章翻译,Look Mum, no VM Exits!_jailhouse sr-iov

随便推点

chatgpt赋能python:Python怎么删除文件中的某一行_python 删除文件特定几行-程序员宅基地

文章浏览阅读751次。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。AI职场汇报智能办公文案写作效率提升教程 专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。_python 删除文件特定几行

Java过滤特殊字符的正则表达式_java正则表达式过滤特殊字符-程序员宅基地

文章浏览阅读2.1k次。【代码】Java过滤特殊字符的正则表达式。_java正则表达式过滤特殊字符

CSS中设置背景的7个属性及简写background注意点_background设置背景图片-程序员宅基地

文章浏览阅读5.7k次,点赞4次,收藏17次。css中背景的设置至关重要,也是一个难点,因为属性众多,对应的属性值也比较多,这里详细的列举了背景相关的7个属性及对应的属性值,并附上演示代码,后期要用的话,可以随时查看,那我们坐稳开车了······1: background-color 设置背景颜色2:background-image来设置背景图片- 语法:background-image:url(相对路径);-可以同时为一个元素指定背景颜色和背景图片,这样背景颜色将会作为背景图片的底色,一般情况下设置背景..._background设置背景图片

Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏8次。Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程

PyCharm2021安装教程-程序员宅基地

文章浏览阅读10w+次,点赞653次,收藏3k次。Windows安装pycharm教程新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入下载安装PyCharm1、进入官网PyCharm的下载地址:http://www.jetbrains.com/pycharm/downl_pycharm2021

《跨境电商——速卖通搜索排名规则解析与SEO技术》一一1.1 初识速卖通的搜索引擎...-程序员宅基地

文章浏览阅读835次。本节书摘来自异步社区出版社《跨境电商——速卖通搜索排名规则解析与SEO技术》一书中的第1章,第1.1节,作者: 冯晓宁,更多章节内容可以访问云栖社区“异步社区”公众号查看。1.1 初识速卖通的搜索引擎1.1.1 初识速卖通搜索作为速卖通卖家都应该知道,速卖通经常被视为“国际版的淘宝”。那么请想一下,普通消费者在淘宝网上购买商品的时候,他的行为应该..._跨境电商 速卖通搜索排名规则解析与seo技术 pdf

推荐文章

热门文章

相关标签