一、STM32CubeMX 简介

STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。

二、CubeMx需要安装的组件

  1. JRE(Java Runtime Environment)

    Java运行环境 运行JAVA程序所必须的环境的集合,由于java的安装比较简单,这里我就不详细说明了。

    Java官网:https://www.java.com/en/download/manual.jsp
  2. STM32CubeMX

    CubeMX官网:https://www.st.com/en/development-tools/stm32cubemx.html
  3. HAL库

    STM32 HAL固件库是ST官方推出的另一套库

三、下载CubeMX

  1. 切换网页语言

  2. 选择STM32软件开发套件

  3. 选择STM32CubeMx

  4. 下载自己需要的软件

四、安装CubeMX

  1. 打开软件安装包

  2. 同一协议

  3. 勾选第一个即可,第二个选项是是否同意ST公司收集你的个人使用信息等。

  4. 选择安装路径

  5. 会提示安装本软件可能会与文件夹之前文件冲突,导致文件夹之前文件丢失 是否继续,点击YES即可

  6. 直接点NEXT

  7. 安装完成,点Done退出

五、更改CubeMx资源路径

  1. Help -> Updater Settings

  2. 资源路径



    注意:资源路径中不能有中文出现

六、安装HAL库

在线安装

  1. 打开安装好的 STM32CubeMX 软件 点上面的Help -> Manage embedded software packages

  2. 选择需要安装的芯片型号和版本

  3. 安装完成后如下图:

离线安装

  1. HAL库下载



  2. 直接导入安装包 Help -> Manage embedded software packages ->From Local 选择离线包即可

七、使用CubeMx生成HAL

  1. 新建工程

  2. 选择芯片型号

  3. 设置调试器,默认是关闭的,如果不使用调试器关闭即可

  4. 设置外部时钟,默认是使用的内部时钟

    打开外部时钟



    设置时钟评率



    将时钟评率设置为72MHz,有不明白的可以看STM32时钟系统的配置寄存器和源码分析

  5. 设置LED引脚

  6. 设置引脚模式

  7. 设置工程

  8. 生成工程

八、修改程序

  1. 打开工程



    注意:编写代码时需要编写在一对注释之间,这样再次生成代码时不会被覆盖

  2. 在mian.c文件的while循环中加入以下代码

    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_12);
    HAL_Delay(1000);

    如下图所示:

  3. 编译下载测试

参考文献

STM32 CubeMx使用教程一--安装教程:https://blog.csdn.net/as480133937/article/details/98885316

STM32 CubeMx使用教程的更多相关文章

  1. 转载:百为STM32开发板教程之十二——NAND FLASH

    http://bbs.21ic.com/icview-586200-1-1.html 百为STM32开发板教程之十二——NAND FLASH 参考资料:百为stm32开发板光盘V3\百为stm32开发 ...

  2. 转载:百为STM32开发板教程之十一——NOR FLASH

    转载:http://bbs.21ic.com/icview-586199-1-1.html 百为STM32开发板教程之十一——NOR FLASH 参考文档:百为stm32开发板光盘\st官方参考资料\ ...

  3. STM32 Cubemx 输出可调频率与占空比的PWM

    这里就不对STM32的PWM进行讲解了,想要了解的可以百度一下,这里主要说怎么实现. 1.建立工程,我选的是STM32F103zet6芯片,选择定时器的PWM功能 2.配置时钟,我这里配的是内部时钟, ...

  4. 基于STM32F030F4P9和STM32 CUBEMX 输出PWM波形

    STM32F030F4P9定时器功能比较丰富,在此记录项目中使用其自动输出PWM波形(频率:50HZ).CubeMX配置定时器如下图说明. 在此定时器基础时钟为48MHZ,配置中不做分频处理,预分频系 ...

  5. stm32 cubemx hal 工程中 微秒延迟 delay_us

    参考的正点原子的代码 测试平台 stm32f429i-disco 配了一个gpio 时钟 gpio /* USER CODE BEGIN 0 */ typedef uint8_t u8; typede ...

  6. STM32 Cubemx 配置定时器定时1mS

    最近才发现原来我把定时器里的配置参数代表的意义给搞混了,这里记录一下,防止以后自己忘记. 以建立一个定时1mS定时器为例: 1.先打开定时器 2.配置好时钟 3.配置定时器设置 重点来了,以前在这里我 ...

  7. stm32 cubemx hal dma uart参考例程,发送和接收

    参考:https://blog.csdn.net/toopoo/article/details/80012317https://blog.csdn.net/morixinguan/article/de ...

  8. STM32零基础入门教程

    本文主要是针对想了解STM32,手里又没有太多预算的小伙伴.市场上针对新手来说,比较合适的STM32开发版太贵,比如正点原子.树莓派等,便宜的教程又不详细,这对想白嫖的小伙伴来说不太有好,所以我选了一 ...

  9. stm32软件编程的框架及注意事项——rtos篇

    0.通常,嵌入式软件(这里指单片机系统)的框架千变万化,有带rtos的,也有裸机的. 0.1.写过带系统的,也写过裸机的,这里总结一下两个类型的框架,记录下自己的心得,主要是文字描述,框架图可以后期添 ...

随机推荐

  1. chrome插件one-read开发1:准备

    阅读我的博客文章:chrome插件one-read开发:准备 前言 为啥要做这个,因为我原本想用chrome做一个书签管理的东西,但是很久没有碰过chrome的插件开发了.所以先做一个简单的,来熟悉下 ...

  2. 进入React的世界

    一. React 是什么 1. 声明式写法 2. 组件化 3. 一次学习, 随处编写 二. 为什么要学习React 1. 大厂加持 - Facebook 2. 最流行, 使用人数最多, 最被开发者喜爱 ...

  3. js判断时间格式不能超过30天

    let first = this.data.date //开始时间 let second = e.detail.value //结束时间 var data1 = Date.parse(first.re ...

  4. 单位ren vw vh 和 vm

    px: (像素)就是一张图片最小的一个点 em :参考物是父元素的font-size,具有继承的特点 rem: 参考物是HTML的font-size

  5. Ubuntu中hyperledger-fabric2.3.0环境搭建

    系统环境 hyperledger-fabric在Ubuntu安装过程,fabric版本为2.3.0 首先安装相关软件 1.安装docker 直接参考下面这篇文档安装好docker-ce即可 Ubunt ...

  6. LAN交换机自学习算法

    LAN交换机自学习算法 提示 第二层交完全忽略帧的数据部分协议,仅根据第二层以太网的MAC地址做出转发决策. MAC地址表有时又被称作内容可编址内存(CAM)表 检查源MAC地址 如果源MAC地址不存 ...

  7. java高级用法之:在JNA中将本地方法映射到JAVA代码中

    目录 简介 Library Mapping Function Mapping Invocation Mapping 防止VM崩溃 性能考虑 总结 简介 不管是JNI还是JNA,最终调用的都是nativ ...

  8. 使用钡铼BL102网关连接西门子S7-1200PLC 以及mosquitto服务器方法

    一.软硬件描述 西门子PLC S7-1215 钡铼BL102网关 mosquitto MQTT服务器(腾讯云上搭建) 可以上网的路由器一套 二.需要使用的软件. 西门子Portal v15.1 (西门 ...

  9. JS的URIencode方式

    BEGIN; 对需要传递的URL参数进行URLencode编码 刚开始浪费了很多时间都没搞出来,不知道怎么用.后面google到了不少解决方案,最终解决.转载下面内容: js对文字进行编码涉及3个函数 ...

  10. golang bufio解析

    golang bufio 当进行频繁地对少量数据读写时会占用IO,造成性能问题.golang的bufio库使用缓存来一次性进行大块数据的读写,以此降低IO系统调用,提升性能. 在Transport中可 ...