历史上的今天
返回首页

历史上的今天

今天是:2025年01月21日(星期二)

正在发生

2021年01月21日 | STM32CubeMX软件工程描述_USART配置过程

2021-01-21 来源:eefocus

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库)相比以前标准外设库理解起来相对困难一点。

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


推荐阅读

史海拾趣

Carlo Gavazzi公司的发展小趣事

Carlo Gavazzi公司由加瓦齐家族在1931年创立,最初可能只是一个小规模的电气公司。然而,凭借创始人对技术的深刻理解和前瞻性的市场洞察力,公司迅速在行业中崭露头角。在随后的几十年里,公司不断扩展业务范围,逐步建立起自己在电气和电子领域的地位。

ELEMENT14公司的发展小趣事

ELEMENT14始终将提升服务质量和客户满意度作为首要任务。公司建立了完善的客户服务体系,提供快速响应、专业解答的客户服务。同时,ELEMENT14还定期开展客户满意度调查,针对客户的反馈和建议进行改进。这些努力不仅提升了客户满意度,也增强了公司的品牌形象和市场竞争力。

ACT [Advanced Crystal Technology]公司的发展小趣事

ELEMENT14的在线社区是其成功的关键因素之一。公司投入大量资源建设和发展在线社区,吸引了大批电子设计工程师和采购专员的参与。在这个平台上,工程师们可以分享经验、交流技术、解决问题。ELEMENT14还通过社区收集客户反馈和需求,不断优化产品和服务。这个活跃的在线社区不仅增强了客户黏性,也为公司提供了宝贵的市场信息。

Automatic Connector公司的发展小趣事

在电子连接器行业,品质是决定企业生死存亡的关键。Automatic Connector公司深知这一点,因此在生产过程中严格执行品质管理标准。公司引进了先进的生产设备和质量检测仪器,确保每一件产品都符合高标准的质量要求。同时,公司还建立了完善的售后服务体系,及时解决客户在使用过程中遇到的问题。凭借卓越的品质和优质的服务,Automatic Connector赢得了客户的信赖和好评。

Amkor公司的发展小趣事

随着全球电子市场的不断扩大,Automatic Connector公司积极寻求市场拓展的机会。公司首先在国内市场取得了良好的业绩,然后逐步将目光投向了国际市场。通过与国外代理商的合作,Automatic Connector的产品成功进入了欧洲、北美等发达地区的市场。在国际市场的竞争中,公司不断提升产品性能和服务水平,逐渐树立了良好的品牌形象。

CDIL[Continental Device India Pvt. Ltd.]公司的发展小趣事

随着市场竞争的加剧和技术的不断进步,CDIL在15年前作出了重要决策——退出晶圆制造,转而专注于IC封装和电子制造服务。这一转型不仅使CDIL能够更好地适应市场需求,也为其带来了更广阔的发展空间。如今,CDIL的IC封装技术已达到国际先进水平,为全球众多知名电子企业提供优质服务。

问答坊 | AI 解惑

ARM2410开发矩阵键盘问题!

我在编译矩阵键盘驱动程序时,出现以下错误信息,始终找不到答案,请各位帮忙! c:\\wince420\\pbworkplace\\smdk2410\\iicdev\\i2cdev-keyboard.cpp(11) : fatal error C1083: Cannot open include file: \'C:\\WINCE420\\PBWorkSpace\\smdk2410\ ...…

查看全部问答>

救命呀!

用P1。0-P1。5这6个输出口作为东西,南北两个方向的红。绿。黄的路口指示灯。分别接入不同颜色的二极管。程序一开始时,即进入状态1(东西方向绿灯亮,南北方向红灯亮),计数道20秒时间后进入中间状态1(东西方向绿灯灭,东西方向黄闪3秒,间隔0。 ...…

查看全部问答>

双网卡热备份(双网卡冗余备份)如何设计与实现呢?

大家好?WIN2000下,以太网网络,双网卡热备份,也就是一个网卡坏了,另一个冗余网卡热切换,两个网卡同一个IP地址,实现方案是什么?使用哪些工具,技术?代码是什么?我的QQ:270996889  E-MAIL:SDTZ_ZZ@126.COM,热切期待您的回复.谢谢!…

查看全部问答>

[launchPad]时钟

Msp430可以使用的内部、外部时钟有LFXT1(低频、低功耗时钟,可以使用外部低频32768HZ晶振或400K-16M晶振)、XT2CLK(外部输入的高频晶振400K-16M)、DCO(内部数字控制晶振)、VLO(12K内部低频晶振)。 芯片可以使用的时钟:ACLK(辅助时钟)、MCL ...…

查看全部问答>

关于用FPGA产生2.5Gbps数字信号

实验需要产生2.5Gbps的调制信号用于光通信,请问有没有哪位朋友用FPGA产生过高速数字信号?用哪个系列的FPGA芯片?能否直接i/o口输出?…

查看全部问答>

悄悄的告诉你!IAR 5.5 For MSP430就在资源中心

IAR For MSP430 5.5版本软件以及破解器https://download.eeworld.com.cn/detail/wstt/7401 里面有5.5版本的IAR,支持目前几乎所有的器件,还有算号器,就是IAR常用的那种算号器。…

查看全部问答>

晒WEBENCH设计的过程+一款锂电池升压输出5V1A电路方案

1.设计题目:晒WEBENCH设计的过程+一款锂电池升压输出5V1A电路方案 在eeworld论坛找到WEBENCH设计入口或者直接在TI网站进入 https://www.eeworld.com.cn/huodong/201405_TI_webench/ 2.利用WEBENCH设计工具进行的设计过程 输入参数 单节 ...…

查看全部问答>

TIva C M4编译错误

用Tiva C M4编译一个UART的程序时出现错误提示如下:cannot open source file \"drivers/cfal96x64x16.h\"是怎么回事?路径不正确么?应该怎么改 …

查看全部问答>