STM32CubeMX软件工程描述_USART配置过程

发布者:花钱123最新更新时间:2021-01-21 来源: eefocus关键字:STM32CubeMX  软件工程  USART  配置过程 手机看文章 扫描二维码
随时随地手机看文章

STM32CubeMX介绍、下载与安装

STM32CubeMX使用方法及功能介绍

STM32CubeMX新建工程+基本IO配置过程

 

MDK-ARM下载与安装

 

关于本文的更多详情请往下看。

 

Ⅱ、STM32CubeMX新建USART工程

在上一篇文章简单讲述了基于IO新建一个工程的步骤,本文基于USART简单讲述一下STM32CubeMX新建UART串口发送工程。

 

(我们还是以STM32F103E为例来讲述,如果你的板子是STM32其他型号芯片,在选择芯片时对应即可)

 

https://yunpan.cn/cMPy7AbArtxQ8  访问密码 e92f

 

6.添加代码

在main.c文件中添加“延时函数”:

voidTestDelay(uint32_t cnt)

{

  while(cnt--);

}

在主函数中添加下图代码:

添加以上代码就能实现:间隔(约0.5S)LED亮灭变化一次,且串口打印数据。

 

STM32CubeMX_USART配置(修改版),提供给大家下载地址(360云盘):

https://yunpan.cn/cMPKPHVbJtNCB  访问密码 415b

 

 

Ⅲ、软件工程说明

接下来讲述一下使用STM32CubeMX新建的软件工程(MDK-ARM版本)。

 

1.目录结构

在MDK-ARM工程中,可以看到四个目录,分别是:

HAL库:这个库类似于标准外设库(在Drivers目录下)

启动文件startup_stm32f103xe.s:这个文件也和标准外设库里面文件startup_stm32f10x_hd.s类似。

User用户应用:这个目录下是用户添加源代码文件的目录,如果要添加新文件可以在这里添加。

CMSIS微控制器软件接口标准:这个目录也是属于底层的代码(和我之前使用标准外设库建立的软件工程类似,也是位于Drivers目录下)。

 

2.添加用户代码区域

打开使用STM32CubeMX新建的软件工程可以看见很多地方有成对的注释代码“USER CODE BEGIN”和“USERCODE END”,这两个注释之间就是用户添加自己代码的区域。如main.c文件下就有多处用户编程区域:

 

3.初始化配置代码描述

当我们使用STM32CubeMX新建软件工程后,打开软件可以看见里面有很多代码就是通过STM32CubeMX工具自动生成的(是STM32CubeMX的特性),下面大概讲述一下本文生成的代码。

A.四个主初始化代码:

HAL_Init();               HAL库底层初始化

SystemClock_Config();     时钟配置

MX_GPIO_Init();          IO初始化(用户需求)

MX_USART1_UART_Init(); USART初始化(用户需求)

这四个主初始化配置代码中,前面两个基本上是使用STM32CubeMX工具生成都有的代码,后面两个才是用户根据自己需求配置的代码。

 

B. HAL_Init();

这个属于软件工程的标配,主要对初始化(默认)FLASH和NVIC等。

这个函数会使程序不能访问FLASH,也就是为什么我们程序在运行的时候不能下载代码的原因,解决的办法:1.不调用该函数; 2.使MCU处于复位状态下载代码。

 

C. SystemClock_Config();

当你使用以前标准外设库开发过STM32,知道时钟初始化代码,那么这个函数应该很熟悉。其实这里的配置就是上面说的RCC配置(时钟树),参数就是时钟树对应的值。看时钟树就很容易理解。

位于main.c文件。

 

D. MX_GPIO_Init();

这个函数是我们配置的IO函数(对PF11引脚初始化,很简单),位于main.c文件。

和以前使用标准外设库开发类似,其中的参数就是上面“综合配置” 里设置的。

 

E. MX_USART1_UART_Init();

这个函数是我们配置的USART,位于main.c文件。

和以前使用标准外设库开发类似,其中的参数就是上面“综合配置” 里设置的,波特率、数据位数、停止位等。

 

Ⅳ、说明

以上简单讲述了使用STM32CubeMX生成的软件工程,后续会定期更新使用STM32CubeMX新建各种外设资源工程的文章,敬请等待。

如果是STM32初学者的话,不建议立刻使用这个工具来开发,建议先学习标准外设库开发,因为这个工具生产的代码(HAL库)相比以前标准外设库理解起来相对困难一点。

以上总结仅供参考,若有不对之处,敬请谅解。


关键字:STM32CubeMX  软件工程  USART  配置过程 引用地址:STM32CubeMX软件工程描述_USART配置过程

上一篇:STM32CubeMX新建工程+基本IO配置过程
下一篇:STM32内部RAM在线调试配置方法及详细说明

推荐阅读最新更新时间:2024-10-31 01:20

STM32CubeMX新建第一个工程
STM32CubeMX的新建工程其实很简单,如果需要有复杂的配置,整个工程就有很多细节的地方需要注意。 一、打开STM32CubeMX软件,点击“新建工程”: 2、选择芯片型号,点选后,双击选中对应型号(点一次是查看其信息,双击直接选择进入): 双击后 3、设置软件工程,Project - Settings弹出设置窗口,设置好参数,点击OK即可 注意:默认是选择最新版本的库,在使用时要选择自己的库,如上图第7步。 接着我们进行自由设置: 四、工程配置 接下的配置才是与我们最终运行代码密切相关的,我们这里以简单的配置IO(PE5引脚)驱动LED为例来讲述。 A、放大芯片图标,找到PE5(可以通过Fin
[单片机]
<font color='red'>STM32CubeMX</font>新建第一个工程
STM32CubeMX配置串口1 接收中断
实验操作 1、打开cubemax ,芯片选取。 我们选取STM32F103RCt6 (根据实际情况选择),LQFP64封装的。然后鼠标双击中间那个圈住的地方就可以进入配置界面。 图1、芯片选取界面 图2、配置界面 如上图: (1)、标号1 为系统核心的配置,其中由晶振的配置。 (2)、标号2为模拟量相关的外设配置,如adc,dac,等。 (3)、标号3为定时器配置。 (4)、标号4为通信相关的外设。比如串口,CAN等。 其他图中有标注。 2、晶振配置 晶振是单片机的时钟来源,相当于心脏,先添加晶振,点击上图编号1,然后出现下图,在点击RCC,进入晶振
[单片机]
<font color='red'>STM32CubeMX</font>— <font color='red'>配置</font>串口1 接收中断
STM32:DMA实例之串口(USART)通信
硬件平台:stm32f10xZET6 开发环境:keil MDK uVision v4.10 开发语言:C、ST_lib_3.5固件库 /* 代码演示 main.c */ #include stm32f10x.h #include bsp_usart1.h #include bsp_led.h extern uint8_t SendBuff ; static void Delay(__IO u32 nCount); /** * @brief 主函数 */ int main(void) { /* USART1 config 115200 8-N-1 */
[单片机]
如何通过STM32CubeMX制作外部Flash的烧写驱动 (.stdlr)
前言 目前,越来越多的应用需要扩展外部的Flash来满足存储需求。那么,在调试及批量生产的过程中,需要对外扩的Flash进行烧录操作。由于STM32 ST-LINK Utility以及STM32CubeProgrammer中,对Flash支持的型号有限,只能覆盖一部分MCU和Flash的型号,无法完全满足客户的需求。而且,它提供的external loader的制作模板存在覆盖的芯片型号较少,且无法前期QSPI Flash调试的问题。本文旨在提供一种通过stm32CubeMX制作external Flash loader的方法。客户可以根据自己的型号,进行定制化的生成。本文中,以某客户实际使用的MCU(STM32H750) 和Fl
[单片机]
如何通过<font color='red'>STM32CubeMX</font>制作外部Flash的烧写驱动 (.stdlr)
51单片机汇编学习例程(5)——USART串口篇
5.ASM5_USART: 串口发送0-9及换行,接收任意数据并显示 /** ****************************************************************************** * @file USART.asm * @author Alex——小白 * @version V1.0 * @date 2019.9.1 * @brief 自动发送数据0-9和换行,接收的数据会打印该数据 ****************************************************
[单片机]
51单片机汇编学习例程(5)——<font color='red'>USART</font>串口篇
USART3的PD8 PD9重映射复用问题
1 串口程序缺少时钟使能,先使能时钟才能配置外设: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE); RCC_APB1PeriphClockCmd( RCC_APB1Periph_USART3, ENABLE); 2 PD8 PD9应是全映射。 USART3_REMAP :USART3 的重映像 (USART3 remapping) 位5:4 这些位可由软件置 1 或置 0 ,控制USART3 的CTS、RTS、CK、TX和RX复用功能在GPIO端 口的映像。 00: 没有重映像(TX/PB10 ,
[单片机]
STM32F0xx_RTC实时时钟配置详细过程
Ⅰ、概述 今天总结RTC(Real Time Clock)实时时钟相关的知识,顺带将BKP简单总结一下。 STM32的RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后, RTC的设置和时间维持不变。 STM32F0的RTC模块和F1的RTC模块最大区别在于F0模块中有“DATE”和“TIME”寄存器,也就是可以直接读取寄存器里面的值,而F1是秒计数寄存器的值,需要通过相关算法下才能得到时间的值。 本文提供的软件工程里面还包含一个BKP模块,主要是用于掉电保持RTC数值(第一次上电初始化RTC,后面就不用初始化)。例程是在第一次初始化RTC值为:2016年6月5日 周七 12
[单片机]
STM32F0xx_RTC实时时钟<font color='red'>配置</font>详细<font color='red'>过程</font>
stm32的USART_IT_TXE和USART_IT_TC
一般来说,串口的发送中断传输数据,对于我目前的应用来说,应用的要求并不是很高,因此,因此就一直没有对其进行一个比较好的实验与认识。然而,在一次串口程序升级(IAP)升级实验中,发现有人使用了这个发送中断方式进行的,所以特别的进行了一个个步骤的实验来进一步知道其运行机理。 首先,串口发送数据,可以使用的方式有: 1、 发送一个数据,然后读取USART_IT_TXE或者USART_IT_TC寄存器的状态。 2、 使用串口发送中断 3、 使用dma发送完成中断 在效率上,肯定是3比较好。其次是2。 网上关于USART_IT_TXE和USART_IT_TC是怎么个用法,各家有各家的言论,在我这里只通过实验来了解
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved