STM32F4_USART配置及细节描述

发布者:GoldenHarmony最新更新时间:2021-01-19 来源: eefocus关键字:STM32F4  USART  配置 手机看文章 扫描二维码
随时随地手机看文章

Ⅰ、概述

关于USART串口通信,可以说是MCU的标配。不管是在实际项目应用中,还是在开发过程中,它都起着很重要的作用。


在项目应用中我们常常使用UART串口进行通信,根据通信的距离及稳定性,还选择添加RS232、RS485等对UART数据进行转换。

 

在开发过程中,我们常常用它来打印调试信息,我们购买的开发板基本上都有一个UART通信接口(DB9的接头),这个接口主要的一个作用就是用来开发时调试使用。

本文主要针对STM32初学者,使用STM32F4标准外设库、Keil集成IDE,对STM32F4的USART进行配置及描述。1.详细描述使用自定义打印数据、自定义中断接收数据;2.重定义打印数据printf;

 

关于本文的更多详情请往下看(微信请点击“阅读原文”查看更多链接内容)。

 

Ⅱ、实例工程下载

笔者针对于初学者提供的例程都是去掉了许多不必要的功能,精简了官方的代码,对初学者一看就明白,以简单明了的工程供大家学习。


笔者提供的实例工程都是在板子上经过多次测试并没有问题才上传至360云盘,欢迎下载测试、参照学习。

 

提供下载的软件工程是STM32F417的,但F4其他型号也适用(在工程中修改一下型号就行)。

 

360云盘下载地址:

https://yunpan.cn/cBQiZXDsvacwV  访问密码 a98e

 

STM32F4资料:

https://yunpan.cn/cR2pxqF5x2d9c  访问密码 53e7

 

Ⅲ、USART初始化描述

笔者以F4标准外设库(同时也建议初学者使用官方的标准外设库)为例来描述一下USART的初始化。

USART的初始化大致分三个部分:

 

1.USART时钟

该函数位于bsp.c文件下面;

 

重点注意:

A.USART时钟的配置要在USART其他配置(USART初始化、中断等)前面;

 

B.匹配对应时钟。

比如:RCC_APB2外设不要配置在RCC_APB1时钟里面

【如:RCC_APB1PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);这样能编译通过,但这是错误的代码】

 

2.USART引脚配置

该函数位于usart.c文件下面;

 

注意:

A.GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_USART1);

  GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_USART1);

引脚配置中,引脚功能复用的配置比较重要,很多从F1转型到F4的朋友往往会忽略掉这一点(F1中没有这个配置选项)。

 

B.GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;

这里配置为复用模式。

 

3.USART参数配置

该函数位于usart.c文件下面;

 

A.USART波特率

对于STM32来说,波特率可根据用户自定义,也就是数值随便用户设定(但需要主要范围和误差值)。

关键的一点:它不受系统使用的变化而受影响(这就是使用标准外设库的好处),也就是说它自适应系统时钟。

 

B.USART模式:

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

提供实例是收发模式都有,但提醒一下,有些朋友从一个地方拷贝代码自己的工程就要注意,如果你使用了接收的功能,拷贝过来的代码没有配置接收,那就有问题。【在实际开发中有人遇见过这类问题】

 

C.中断配置

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

中断功能也是在应用中比较常用的一个功能,特别是接收中断。如果使用的USART中断,这个函数就需要配置,发送中断不常见,如果没有发送中断的要求就不需要配置发送功能。

 

Ⅳ、USART重定义(打印数据)

相信来学习该文章知识的朋友(都应该学习过C语言知识)都应该知道打印数据printf这个函数。但是,很多初学者可能不理解怎样才能实现printf这种打印方式,其实只需要简单的两步步骤就能实现printf这个函数。这一节就是关于描述使用USART来重定义打印数据。

 

1.使用微库

project -> Options for Target -> Target窗口下勾选上”Use MircoLIB”使用微库。

由于printf函数是标准的函数,这里我们就直接使用标准的“微库”,而不自己设计该函数的功能。

 

2.重定义函数

#include

首先要包含头文件”stdio.h”, 提供的实例工程位于usart.h文件下面。

该函数位于usart.c文件下面;

 

我们使用printf函数,需要重定义fputc函数。

 

经过上面两步骤,我们就可以实现printf函数打印输出UART数据了。

 

Ⅴ、USART自定义(打印数据)

该函数位于usart.c文件下面;

 

我们自定义的打印函数功能就比较简单,计算字符串个数。

 

Ⅵ、USART中断接收

接收数据可以查询接收,也可以中断接收;查询的效率比较低,我们实例提供的是中断接收的方式,实现的效果的接收到一个数据,就将其发送出去。

 

中断接收需要配置几个地方:

1.使能中断

USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

这个函数位于USART初始化里面,主要是使能USART中断。

 

2.配置NVIC

该函数位于bsp.c文件下面;

配置NVIC通道和优先级。

 

3.USART接收中断

该函数位于stm32f4xx_it.c文件下面;

主要是中断接收和处理,效果就是:有中断就发送接收的数据。


关键字:STM32F4  USART  配置 引用地址:STM32F4_USART配置及细节描述

上一篇:STM32F4_TIM输入波形捕获(脉冲频率)
下一篇:STM32F4_引领入门

推荐阅读最新更新时间:2024-11-12 01:43

国家能源局:按需建设储能 推动各类型、多元化储能科学配置
  4月20日,国家能源局综合司就《关于加强新型电力系统稳定工作的指导意见(征求意见稿)》向社会公开征求意见。   《征求意见稿》提出, 科学安排储能建设,按需建设储能。根据电力系统需求,统筹各类调节资源建设,因地制宜推动各类型、多元化储能科学配置,形成多时间尺度、多应用场景的电力调节能力,更好保障电力系统安全稳定灵活运行,改善新能源出力特性和负荷特性,支撑高比例新能源外送。有序建设抽水蓄能。有序推进具备条件的抽水蓄能电站建设,探索常规水电改抽水蓄能和混合式抽水蓄能电站技术应用,新建抽水蓄能机组应具备调相功能。积极推进新型储能建设。充分发挥电化学储能、压缩空气储能、飞轮储能、氢储能、热(冷)储能等各类新型储能的优势,探
[新能源]
STM32F407 基本定时器使用
介绍STM32F407基本定时器的配置方法,分别介绍轮询方式、中断方式使用定时器完成定时。 【1】定时器介绍 定时器相关的章节在STM32F4xx参考手册第14、15、16、17章节。 【2】基本定时器配置示例 增加一个Timer.c文件,代码如下 #include timer.h /* 函数功能:基本定时器7初始化配置 函数形参: psc :预分频系数 arr :重载值 说明:定时器的视频频率为84MHZ ,是APB1时钟频率的2倍 */ void Time7_InitConfig(u16 psc,u16 arr) { /*1. 开时钟*/ RCC- APB1ENR|=1 5;
[单片机]
<font color='red'>STM32F4</font>07 基本定时器使用
STM32F407 外扩SRAM
字节控制功能。支持高/低字节控制。 看看实现 IS62WV51216 的访问,需要对 FSMC进行哪些配置。 这里就做一个概括性的讲解。步骤如下: 1)使能 FSMC 时钟,并配置 FSMC 相关的 IO 及其时钟使能。 要使用 FSMC,当然首先得开启其时钟。然后需要把 FSMC_D0~15,FSMCA0~18 等相关IO 口,全部配置为复用输出,并使能各 IO 组的时钟。 使能 FSMC 时钟的方法: RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE); 对于其他 IO 口设置的方法前面讲解很详细,这里不做过多的讲解。 2)设置 FSMC BANK1 区域 3。
[单片机]
<font color='red'>STM32F4</font>07 外扩SRAM
2600-PCT-x/4200-PCT-x参数曲线跟踪仪配置(二)
吉时利参数曲线跟踪仪配置是完整的特性分析工具,包括功率器件分析所需的主要要素。 测量通道包括吉时利数字源表 源测量单元(SMU)和/或半导体特性分析仪器。这些仪器的动态范围和准确度比传统曲线跟踪仪高出若干数量级。 为了实现这个性能,吉时利公司已经开发出一系列高精密电缆,实现与吉时利8010型高功率器件测试夹具的连接。对于高电压通道,定制三轴电缆可以提供保护路径,支撑快速建立和极低电流,包括在3kV全高压情况下。对于高电流通道,专用低电感电缆可以提供更快的上升时间脉冲,实现器件自发热效应的最小化。 安全、高效的测试夹具至关重要。8010型夹具可以提供互锁的屏蔽环境,支持低电流/高电压测试以及高电流/低电压测试。8010型夹具
[测试测量]
2600-PCT-x/4200-PCT-x参数曲线跟踪仪<font color='red'>配置</font>(二)
vivo Y55s通过认证 配置类似将推出的iQOO Z5X
近日,三款型号为V2009A、V2115A和V2156A的新vivo手机获得了工信部的认证。其中,工信部列出了V2156A智能手机的主要规格和图片。 早在8月份,这款V2156A手机就在IMEI数据库中被发现,名字是vivo Y76S。然而,微博用户@WHYLAB爆料声称,这款智能手机将在市场上发布,名字为vivo Y55s。 V2156A手机尺寸为163.85 x 75 x 7.79 mm,重175克。它拥有6.58英寸的TFT显示屏,提供1080x2408像素的Full HD+分辨率。由4005mAh额定电池供电。 V2156A的背板拥有5000万像素+200万像素的双摄像头系统。它有一个800万像素的前置摄像头。
[手机便携]
STM32的串口配置(中断方式)
STM32的串口中断配置,也是很简单的. 首先是配置UART的GPIO口 首先是配置UART的GPIO口 /********************************************** * Name : UART1_GPIO_Configuration * Deion : Configures the uart1 GPIO ports. * Input : None * Output : None * Return : None **********************************************************/ void UART1_GPIO_Configur
[单片机]
关于arm-linux-gcc的安装与配置
在嵌入式开发中我们经常会用到arm-linux-gcc来编译我们的应用程序。作为arm-linux-gcc的入门,我们先看看如何安装arm-linux-gcc。 安装arm-linux-gcc还是比较简单的,我们看看Redhat9.0下的安装步骤吧。 1、将arm-linux-gcc的压缩包arm-linux-gcc-2.95.3.tar.gz解压缩; 2、将路径usr/local下的arm目录拷贝到你自己系统的/usr/local下; 3、 1 方法一: vi /etc/profile;在出现pathmunge 的语句段后添加pathmunge /usr/local/arm/2.95.3(版本号)/bin; 保存对p
[单片机]
配置FM3产品族微控制器嵌入式应用的RFID开发工具
RFID 技术在物联网时代有着举足轻重的地位。很多芯片公司都很重视RFID 技术的应用。ST公司的短距离,13.56MHz频段,主要应用为身份识别、公交系统和防伪技术;ST公司的长距离RFID产品符合ISO15693标准,主要应用为交通、门禁;ST公司的超长距离RFID产品符合EPCClass1b标准,主要应用于物流供应链管理市场。NXP公司的UCODE G2iL系列可以为先进RFID系统的单品级标签,是结构简单,高效实惠的单天线解决方案。富士通半导体从2004上半年开始陆续提供13.56MHz频带的产品,并且已经提供UHF频带的产品。富士通半导体基于其MCU的嵌入式RFID解决方案是通过串行接口(SPI)和共享内存区来连接RFI
[模拟电子]
<font color='red'>配置</font>FM3产品族微控制器嵌入式应用的RFID开发工具
小广播
设计资源 培训 开发板 精华推荐

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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