对STM32F10xxx中UART通信的一些理解

2019-05-23来源: eefocus关键字:STM32F10xxx  UART通信  串口通信

1.串口通信,一般有UART,USART,I2C,SPI,485通信,can通信 

2.UART指通用异步收发传输器,可以实现全双工传输和接收。UART通信时,数据先发低位再发高位。 

3.USART指通用同步/异步串行接收/发送器。 

4.UART与USART的硬件总线区别? 

1.UART: Rxd—–读数据线 

Txd—–写数据线 

2.USART:Rxd—–读数据线 

Txd—–写数据线 

RTS—–接收器流控线 

CTS—–发送器流控线 

5.UART通信模型 

 这里写图片描述 

6.USART通信模型 

相对于UART,每个设备多两条线RTS,CTS 

RTS—(发送流控线)(通知另外一个设备)——对应——CTS(接收流控线) 

都有一个地线 

 这里写图片描述 

7.UART发送和接收的可编程波特率,最高达 4.5Mbits/s 

8.UART的应用场景:USART应用中大部分时候使用异步的模式,智能卡使用同步模式; 

USART/UART作为调试的方法,通过串口助手打印在PC机上; 

支持多种外设,例如9轴传感器、电子指南针、串口透传蓝牙、串口透传WiFi; 

还可以作为485通信的基础,485可以延长通信距离。 

9.UART时序: 

 这里写图片描述 

字长可以通过编程USART_CR1寄存器中的M位,选择成8或9位。在起始位期间, TX脚处于低电平,在停止位期间处于高电平。 

每个字符(每帧信息)由4部分组成: 

(1)1位起始位,规定为低电平0; 

(2)8~9位数据位,即要发送的有效信息; 

(3)1位奇偶校验位(可选); 

(4)0.5,1.5,2个停止位,规定为高电平1. 

10.USART中的寄存器 

一个状态寄存器(USART_SR) 

数据寄存器(USART_DR) 

一个波特率寄存器(USART_BBR),12位整数和4位小数 

控制寄存器1(USART_CR1) 

控制寄存器2(USART_CR2) 

控制寄存器3(USART_CR3) 

一个智能卡模式下的保护时间寄存器(USART_GTPR) 

11.USART通信中断原理流程: 

(1)恢复默认 

(2)打开相应时钟APB 

(3)GPIO口初始化 

(4)USART模式初始化,波特率,字长,停止位,校验位,硬件流控 

(5)使能USART中断 

(6)清空USART标志位 

(7)使能USART 

(8)USART中嵌套向量中断控制器NVIC初始化,优先级组,抢占式优先级和响应式优先级个数 

(9)编写中断服务函数


关键字:STM32F10xxx  UART通信  串口通信 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic462730.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:对于STM32存储大量数据的优化问题
下一篇:STM32 USART 使用DMA 详解

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F103ZET XXX.map的可执行映像分析
piler 5.05 update 2 (build 169) Tool: armlink [4d0f33]==============================================================================Section Cross References    stm32f10x_adc.o(i.ADC_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) for RCC_APB2PeriphResetCmd    stm32f10x_tim.o(i.TIM
发表于 2019-07-23
STM32F103ZET XXX.map的可执行映像分析
STM32F10xxx的三种低功耗模式
稍微整理一下开发资料和网络上的低功耗知识。 STM32F10xxx有三种低功耗模式:1.睡眠模式(M3内核停止,外设仍在运行,功耗最高):void PWR_EnterSleepMode(uint8_t PWR_SLEEPEntry); //睡眠模式中断和唤醒事件可唤醒(中文参考手册4.3.3)。 2.停止模式(所有时钟停止,功耗较低,约20uA):void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry); //停机模式/*  * PWR_Regulator: specifies the regulator st
发表于 2019-07-10
STM32F10xxx支持三种复位
STM32F10xxx支持三种复位形式,分别为系统复位、上电复位和备份区域复位。一、系统复位除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器(见图4)以外,系统复位将复位所有寄存器至它们的复位状态。当发生以下任一事件时,产生一个系统复位:1. NRST引脚上的低电平(外部复位) 2.  窗口看门狗计数终止(WWDG复位) 3.  独立看门狗计数终止(IWDG复位) 4.  软件复位(SW复位) 5.  低功耗管理复位可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源。软件复位通过将Cortex™-M3中断应用
发表于 2019-06-14
STM32F10xxx支持三种复位
STM32F10xxx_Keil中添加的预定义宏
plicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx));  这时候我们需要在设置面板的“TargetOptions”中“C/C++”选项卡添加USE_STDPERIPH_DRIVER. STM32F10X_HD。这样才能使编顺利通过。  知其然了,我们还得知其所以然。下面就一一道来。我们知道,程序的执行是从main.c文件开始的,其中必须包含有头文件stm32f10x.h。打开stm32f10x.h,查找USE_STDPERIPH_DRIVER,在第8296-8298行找到#ifdef USE_STDPERIPH_DRIVER#include "stm32f10x_conf.h"#endif  这段
发表于 2019-01-17
STM32F1xxx存储器和总线架构
一.小容量,中容量,大容量的产品和互联型的产品内部结构是不同的。1.F101,F102,F103的产品系统结构2.互联型产品中的系统架构注:1.2.  当对APB寄存器进行8位或16位访问时,该访问被自动转换成32位的访问。
发表于 2018-06-05
基于Lua脚本语言的嵌入式UART通信方案设计
[1],这使得它越来越多地得到大家的关注。因此,在本文的方案中优先选用Lua脚本来进行设计。   2 系统方案概述   本方案主要是围绕着IED装置和外围串口设备之间的通信来进行设计的,系统框架如图1所示。   图1 系统框架   当IED装置开始运行时,将创建一个用于UART通信的读写调度任务。在该任务中,首先通过Lua提供的接口函数来启动其脚本引擎,并创建Lua虚拟机。然后即可将用户编写的C函数注册到Lua虚拟机中去,并将存在于Flash文件系统中独立于装置C程序的Lua脚本文件加载到虚拟机中,从而建立起Lua和C的交互环境。在系统应用中,将需要发送到外围设备的具体数据内容都放在Lua脚本文件中。当装置C程序需要发送数据时,通过通信读写
发表于 2016-10-17
小广播
何立民专栏 单片机及嵌入式宝典

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

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