datasheet

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

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

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

推荐阅读

STM32F10xxx支持三种复位

STM32F10xxx支持三种复位形式,分别为系统复位、上电复位和备份区域复位。一、系统复位除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器(见图4)以外,系统复位将复位所有寄存器至它们的复位状态。当发生以下任一事件时,产生一个系统复位:1. NRST引脚上的低电平(外部复位) 2.  窗口看门狗计数终止(WWDG复位) 3.  独立看门狗计数终止(IWDG复位) 4.  软件复位(SW复位) 5.  低功耗管理复位可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源。软件复位通过将Cortex™-M3中断应用
发表于 2019-06-14
STM32F10xxx支持三种复位

STM32F10xxx_Keil中添加的预定义宏

;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

STM32F10XXX总线架构和存储器组织

或者System总线访问这些资料。为了不让两者冲突,需要总线矩阵逻辑进行仲裁决断。AHB,通过总线矩阵和系统总线相连。再加上AHB/APB桥,构成了到外设的通道。从上图可以看出,APB分为两种:APB1和APB2。这样是为了适应不同速率的外设,同时兼顾性能功耗的考虑。APB1的操作频率限于36MHz,APB2操作于全速(最高72MHz)。 2. 存储器组织STM32F10XXX中flash,内置SRAM,片上寄存器等一起构成一个4GB的线性地址空间。数据采用小端格式存储,即低字节位于低地址(两低为小端)。下图是片上外设寄存器的映射地址,这便是C程序中以下类型定义的来源。<span style="
发表于 2018-06-05

STM32F10xxx启动模式分析

于调试。HOW?如何将程序download到SRAM?仿真器能做到这一点? 下面看一下STM32F10xxx Reference Manual中关于启动配置的描述。1.  CPU从地址0x0000 0000 获取堆栈顶的地址,并从启动存储器的0x0000 0004 指示的地址开始执行代码。——这句话暂时不理解,待学习。2. STM32F10xxx微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM 启动。——这个机制具体是怎么实现的不去深入追究,结合STM32F10xxx的的Memory Map可以更直观的理解一下。3. 注意:当从内置SRAM
发表于 2017-11-08
STM32F10xxx启动模式分析

基于队列的UART通信模块

/********************************   基于队列的Mega8 UART通信驱动程序   文件名:uart.c   编译:WinAVR-20070122   硬件:CA-M8X   时钟:外部4MHz *******************************/ #include <avr/io.h> #include <avr/interrupt.h> #include "
发表于 2016-10-28

小广播

何立民专栏

单片机及嵌入式宝典

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

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