STM32cubemx教程及STM32入门(一)

STM32cubemx教程及STM32入门(一)STM32cubemx 教程 一 2021 10 17 简介 STM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具 目的就是为了方便开发者 允许用户使用图形化向导生成 C 初始化代码 可以大大减轻开发工作 时间和费用 提高开发效率 STM32CubeMX 几乎覆盖了 STM32 全系列芯片 在 CubeMX 上 通过傻瓜化的操作便能实现相关配置 最终能够生成 C 语言代码 支持多种工具链 比如 MDK IARForARM TrueStudio 等省去了我们配置各种外设的时间

STM32cubemx教程(一)2021.10.17

简介

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

在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等 省去了我们配置各种外设的时间。

补充:32的三种开发模式

1.stm32能基于寄存器开发,就是和51单片机一样,直接对寄存器进行编程。基于寄存器编写的代码简练、执行效率高。但由于 STM32 微控制器的片上外设和寄存器数量太多,这种编程方式移植性差,寄存器名称记起来也很痛苦。

2.基于st官方的固件库进行开发。现在大部分stm32教程教的都是这种库函数开发,如正点原子,野火等。他相比寄存器开发更加简单,我们不需要记住每个寄存器的地址和名称,只要会调用ST官方封装好的库函数进行编程就可以了。

3.基于STM32cubemx进行开发,就是我们今天要给大家介绍的内容。STM32cubemx使用的是st官方新推出的HAL库,然后我们可以通过软件内设计好的图形化界面进行配置,软件自动生成生成配置代码,然后我们再在IDE上面codding。

那么,如何编写一个基于HAL库的简单的STM32程序?(点亮一个LED)

一.需要的软件

STM32cubemx,keil5(或者其他支持cubemx插件的ide,如clion,vscode)

二.STM32CubeMX的界面配置

首先你需要下载32的软件包,步骤如图

在这里插入图片描述

然后搜索芯片型号,然后新建工程(这边以STM32F103C8T6为例)

在这里插入图片描述

然后会出现配置界面

在这里插入图片描述

左边是32的片上资源,右边是GPIO引脚的配置界面

DMA控制器

参考链接

GPIO口

img

在STM32中选用IO模式:

 上拉输入、下拉输入可以用来检测外部信号;例如,按键等; 模拟输入 ——应用ADC模拟输入,或者低功耗下省电 开漏输出一般应用在I2C、SMBUS通讯等需要"线与"功能的总线电路中。 推挽输出模式一般应用在输出电平为0和3.3伏而且需要高速切换开关状态的场合。在STM32的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。 复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA) 复用功能的开漏输出_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS) 

IO口学习参考链接

NVIC(嵌套向量中断控制器)

进行中断优先级分组

RCC(时钟)

设置你的时钟源,32有五个时钟源

时钟树学习参考这篇blog,写的很清楚

也可以参考正点原子视频第19讲

IWDG(独立看门狗)WWDG(窗口看门狗)

看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。


回到正题,点灯只需要用到RCC配置,GPIO配置

将外部高速时钟(HSE)配置为Crystal/Ceramic Resonator(晶体/陶瓷谐振器),外部低速时钟(LSE)用不到,可以不配置

在这里插入图片描述

配置GPIO

在这里插入图片描述

然后点击clock configuration配置时钟树。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后点击generate code,点击open project

在这里插入图片描述

编译没有报错,可以用用串口将hex文件烧入单片机中,也可以直接使用JATG或SWD烧录

补充:单片机的三种烧录模式ICP,IAP,ISP

详情参考链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179334.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午3:49
下一篇 2026年3月26日 下午3:50


相关推荐

  • SpringBootAdmin2.0.4初体验

    SpringBootAdmin2.0.4初体验springbootad 是一款 spring 家族的项目可视化监控工具 这篇文章照本宣科 跟着官网跑一下 springbootad 体验 springbootad 从官网开始 sbagithub nbsp https github com codecentric spring boot admin 此处选择 2 0 4 然后跟着官方教程走 A 服务端 其实

    2026年3月16日
    2
  • 人体检测–热释电传感器开发

    人体检测–热释电传感器开发人体检测–热释电传感器开发人体热释电传感器顾名思义是探测是否有人体通行和通过,由于它的廉价性,使得它的应用范围非常广泛。楼道里的灯,天台的报警设施等,都是利用这个来进行报警和检测。本文章将分为两个板块来介绍传感器的开发和应用。一·热释电传感器的工作原理  某些晶体,例如钽酸锂、硫酸三甘肽等受热时,晶体两端会产生数量相等、符号相反的电荷。1842年布鲁斯特将这种由温度变化引起的电极化现象正式命名为…

    2026年4月16日
    4
  • checkbox的attr("checked")一直以来,undefined问题解决

    checkbox的attr("checked")一直以来,undefined问题解决

    2022年1月14日
    47
  • STM32 JLINK接口定义 JTAG/SWD「建议收藏」

    STM32 JLINK接口定义 JTAG/SWD「建议收藏」

    2022年5月8日
    69
  • cd4与cd8比值的意义 化疗后_艾滋病人的cd8高好还是低好

    cd4与cd8比值的意义 化疗后_艾滋病人的cd8高好还是低好正常情况下CD4/CD8比值介于1.5—2.5之间,如CD4是每微升血750个,CD8是每微升血460个,这样两者的比值就是1.63。虽然95%的正常人CD4/CD8的比值都在1以上,但是也有一些正

    2022年8月1日
    7
  • 〖免杀〗.net程序一键免杀Win10 20H2 Defender「建议收藏」

    〖免杀〗.net程序一键免杀Win10 20H2 Defender「建议收藏」WIN10更新至最新版20H2发现,查杀能力比以前强了不少,特别是针对CS加载.NET程序集或NIM加载.NET的查杀,毕竟你要调用的函数微软很了解,它想拦截想杀还是比较容易的。但是不知道大家有没听说过一个故事“微软的编程工具的开发工程师,编写程序时,也需要查阅文档”,说明什么?微软系统的API很多,是微软写的没错,但又不是一个人自己写的,就算是一个人自己写的,功能那么多,他也根本记不起,用到自己的东西也要查阅文档,就像我用Ladon有时也要查阅文档,这很正常,因为我写过的工具或功能太多,有些久不用,甚至都

    2022年8月20日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号