STM32cubemx教程及STM32入门(一)

news/2024/11/17 21:17:00/

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口

GPIO的工作方式有4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入
4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能

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

ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。
ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。
IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。

详情参考链接


http://www.ppmy.cn/news/879129.html

相关文章

STM32 - Cube介绍

打开ST芯片的官网:Home - STMicroelectronics。 在菜单栏里逐级找到:“Tools & Software” -> "Ecosystems" -> "STM32Cube Ecosystem",然后点开。 STM32Cube - Discover the STM32Cube Ecosystem - STMicroe…

【STM32】stm32是什么

🐱作者:一只大喵咪1201 🐱专栏:《STM32学习》 🔥格言:你只管努力,剩下的交给时间! STM32的简单介绍 介绍特点 认识STM32总结 介绍 STM32是一款单片机,它由意法半导体公…

初识STM32之选型

提示:本文主要为学习笔记,主要学习资料为野火的《STM32库开发实战指南--基于野火指南者开发板》,希望各位大佬可以多多关照,多多指点 文章目录 前言一、STM32的分类二、STM32的命名规则三、选择合适的MCU总结 前言 提示&#xff…

使用stm32驱动RC522读取IC卡

stm32驱动RC522 RC522与PN532简介关于STM32驱动方式接线说明程序烧录查看卡号总结 原文链接:https://www.yourcee.com/newsinfo/2924379.html 点击图片购买 RC522与PN532简介 在写这篇文章之前有写过一篇有关于PN532的文章,RC522与PN532在使用上都可以用…

stm32学习笔记-1 STM32简介

1 STM32简介 文章目录 1 STM32简介1.1 套件简介1.2 STM32芯片内部的外设1.3 STM32芯片系统结构1.4 STM32芯片引脚定义1.5 STM32最小系统 注:笔记主要参考B站 江科大自化协 教学视频“STM32入门教程-2023持续更新中”。 注:工程及代码文件放在了本人的Git…

手把手学STM32(一)

手把手学STM32(一)构建工程 这篇文章详细的介绍编写第一个固件工程(F103ZET6版本的)。文档里的操作部分我使用了黄色背景色标出,如觉麻烦,可直接参考黄色部分。 资料下载链接:https://pan.baidu.com/s/1nmjR5SxauIyVW…

STM入门基础初识

序言 本文章是关于stm的一些简单的介绍,全部都是个人学习的一些经验总结,分享给想要自学stm32的朋友们用于入门。其中部分内容借鉴于《stm32中文参考手册》和《cortex-m3权威指南》,对于大神请不喜勿喷。 哈哈。 stm32是什么呢? 简单来说,stm32是一种32位的单片机,是采用…

STM学习之:基础概念

所有芯片的引脚顺序都是逆时针排序的; 开发板中把芯片的引脚引出来,连接到各种传感器上,然后在STM32上编程,(实际就是通过程序控制这些引脚输出高电平或者低电平)来控制各种传感器工作; stm32有…