一、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. PhantomJS,隐身浏览器

    PhantomJS PhantomJS是一个无界面的浏览器,实现了传统浏览器的所有功能,除了没有界面,因此,这是一个隐身浏览器. PhantomJS官网 API,特别需要注意的是Web Page Mo ...

  2. 我的python学习记_01

    一切的开始都是从打招呼开始的,python也不例外,首先和将要陪伴我后半生的朋友说句情话: print("不是在最美好的时光遇见你,而是因为遇见你才让我有了最美好的时光") 初写代 ...

  3. Android M 版本以后的特殊权限问题分析

    现象 桌面悬浮框在6.0以后,会因为SYSTEM_ALERT_WINDOW权限的问题,无法在最上层显示. 问题原因 SYSTEM_ALERT_WINDOW,设置悬浮窗,进行一些黑科技 WRITE_SE ...

  4. git的下载安装以及基本操作

    版权声明:本文为CSDN博主「~李疆」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.转载原文链接:https://blog.csdn.net/qq_403232 ...

  5. Java 将Map按Value值降序排列

    1 /** 2 * 将集合按照降序排列-FLOAT 3 * @param nowPartTwoData 4 * @return 5 */ 6 private static List<Map.En ...

  6. 使用Nginx做反向代理的配置

    安装Nginx服务之后 修改Nginx配置文件 如下server字段中主要是配置listen监听8080 端口,然后静态文件袋里到8001  后端端口代理到8000 server { listen 8 ...

  7. Shiro+springboot+mybatis(md5+salt+散列)认证与授权-01

    这个小项目包含了注册与登录,使用了springboot+mybatis+shiro的技术栈:当用户在浏览器登录时发起请求时,首先这一系列的请求会被拦截器进行拦截(ShiroFilter),然后拦截器根 ...

  8. 集成JUnit测试

    集成JUnit测试 既然使用了Spring,那么怎么集成到JUnit中进行测试呢,首先大家能够想到的肯定是: public class TestMain { @Test public void tes ...

  9. Java学习1——计算机基础知识

    本文包含了一些计算机基础知识:计算机组成:Windows常用快捷键:DOS常用命令:计算机语言发展史.

  10. Java学习day14

    可变参数用作方法的形参,方法参数的个数就可变 格式:修饰符 返回值类型 方法名(数据类型...变量名){ } 方法内的形参只能有一个,这里的变量是一个数组 public static <T> ...