1.前言

通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。

USART利用分数波特率发生器提供宽范围的波特率选择。

它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。

它还允许多处理器通信。

使用多缓冲器配置的DMA方式,可以实现高速数据通信。

2.USART主要特性

全双工异步通信

NRZ标准格式??

分数波特率产生器系统

可编程数据长度(8或9位)

可配置停止位数(1或2位)

LIN主发送同步断开符的能力以及LIN从检测断开符的能力 ???

发送方为同步输出提供时钟

IRDA SIR编码器解码器

智能卡模拟功能??

单线半双工通信

使用DMA可配置的多buffer通信

发送器和接收器的单独使能

传输检测标志:接收buf满、发送buf空、传输完成标志

极性控制??

四种错误检测标志:溢出错误、噪音错误、帧错误、极性错误

十种中断源:cts改变?、LIN断开符检测、发送数据寄存器空、发送完成、接收数据寄存器满、检测到总线为空闲、溢出错误、帧错误、噪音错误、校验错误

多处理器通信

从静默模式中唤醒??

两种接收唤醒的方式:Address bit(MSB)、Idle线

3. USART功能描述

图 USART框图

  • -USART双向通信至少需要两根线,RX和TX

RX:接收串行数据输入,通过过采样技术可以修复数据

TX:用于发送数据。当传输被禁用时,保持为IO,当传输使能,无数据传输时,保持高电平。在单线和智能卡模式作为收发数据使用

  • -Normal模式下的数据帧帧需要如下构成:

收发之前是idel状态

1个start位

一个data word(8或9bit) LSB优先

0.5,1,1.5个停止位指示数据帧传输完成

一个分数波特率发生器

状态寄存器

数据寄存器

一个波特率寄存器

一个GuardTime寄存器用于smartcard mode?

  • -同步模式下的pin接口

3.1 字符帧描述

3.2 发送

3.3 接收

3.4 波特率配置

3.5 多处理器通信

3.6 极性控制

3.7 LIN mode

3.8 USART同步模式

3.9 单线半双工通信

3.10 smartcard

3.11 IrDA SIR编码模块

3.12 使用DMA持续通信

  • -利用DMA发送

图 发送时TC/TXE行为

可以通过设置USART_CR3寄存器的DMAT来使能DMA传输.当TXE位被置为1’
时,DMA就从指定的SRAM区传送数据到USART_DR寄存器。为USART的发送分配一个DMA
通道的步骤如下:

1. 在DMA控制寄存器上将USART_DR寄存器地址配置成DMA传输的目的地址。在每个TXE
事件后,数据将被传送到这个地址。
2.在DMA控制寄存器上将存储器地址配置成DMA传输的源地址。在每个TXE事件后,将从此存储器区读出数据并传送到USART_DR寄存器。
3.在DMA控制寄存器中配置要传输的总的字节数。
4.在DMA寄存器上配置通道优先级。
5.根据应用程序的要求,配置在传输完成一半还是全部完成时产生DMA中断。

6.在DMA寄存器上激活该通道。
当传输完成DMA控制器指定的数据量时,DMA控制器在该DMA通道的中断向量上产生一中断。
在发送模式下,当DMA传输完所有要发送的数据时, DMA控制器设置DMA_ISR寄存器的TCIF标志;监视USART_SR寄存器的TC标志可以确认USART通信是否结束,这样可以在关闭USART或进入停机模式之前避免破坏最后一次传输的数据;软件需要先等待TXE=1,再等待TC=1。

  • -利用DMA接收

可以通过设置USART_CR3寄存器的DMAR位激活使用DMA进行接收,每次接收到一个字节,DMA控制器就就把数据从USART_DR寄存器传送到指定的SRAM区。为USART的接收分配一个DMA通道的步骤如下:
1.通过DMA控制寄存器把USART_DR寄存器地址配置成传输的源地址。在每个RXNE事件
后,将从此地址读出数据并传输到存储器。
2.通过DMA控制寄存器把存储器地址配置成传输的目的地址。在每个RXNE事件后,数据将从USART_DR传输到此存储器区。
3.在DMA控制寄存器中配置要传输的总的字节数。
4.在DMA寄存器上配置通道优先级。。
5.根据应用程序的要求配置在传输完成一半还是全部完成时产生DMA中断。
6.在DMA控制寄存器上激活该通道。
当接收完成DMA控制器指定的传输量时, DMA控制器在该DMA通道的中断矢量上产生一中断

  • -多缓冲器通信中的错误标志和中断产生

3.12 硬件流控制

3.13 USART中断请求

图 USART中段请求

USART中断事件被连接到同一个中断向量

图 USART中断映射图

3.14 USART的模式配置

图 USART模式配置

3.寄存器描述

USART_SR:设置了USART的一些传输状态及错误标志等

USART_DR:用于存放发送或接受的数据

USART_BRR:用于设置波特率

USART_CR1/USART_CR2/USART_CR3:用于设置帧格式,中断使能、DMA使能、错误检测使能等

USART_GTPR:

STM32F103X datasheet学习笔记---USART的更多相关文章

  1. STM32F103X datasheet学习笔记---RCC(reset and clock control)

    1.前言 本文主要记录stm32 关于reset 和 clock部分 datasheet的内容. 2.reset 有三种类型的reset:system reset, power reset, back ...

  2. STM32F103X datasheet学习笔记---Flexible static memory controller (FSMC)

    1.前言 FSMC模块能够与同步或异步存储器和16位PC存储器卡接口,它的主要作用是: 将AHB传输信号转换到适当的外部设备协议 满足访问外部设备的时序要求 所有的外部存储器共享控制器输出的地址.数据 ...

  3. STM32F103X datasheet学习笔记---Interrupts and events

    1.前言 本章主要介绍STM32中断和事件相关的内容 2.NVIC NVIC管理着包括内核异常等中断 主要特性 68个外部中断源(不包含16个内部中断线) 可编程优先级为16级 低延迟异常和中断处理 ...

  4. STM32F103X datasheet学习笔记---DMA

    1.前言 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输. 无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作. 两个DMA控制器 ...

  5. STM32F103X datasheet学习笔记---GPIOs and AFIOs

    1.前言 每个GPIO端口有如下几个寄存器进行操作: 两个32位配置寄存器:GPIOx_CRL, GPIOx_CRH 两个32位数据寄存器:GPIOx_IDR, GPIOx_ODR 一个32位set/ ...

  6. ARMV8 datasheet学习笔记5:异常模型

    1.前言 2.异常类型描述 见 ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(1)-EL/ET/ST 一文 3. 异常处理路由对比 AArch32.AArch64架 ...

  7. ARMV8 datasheet学习笔记3:AArch64应用级体系结构

    1.前言 本文主要从应用的角度介绍ARMV8的编程模型和存储模型 2. AArch64应用级编程模型 从应用的角度看到的ARM处理器元素: 可见的元素(寄存器/指令) 说明 可见的寄存器 R0-R30 ...

  8. STM32学习笔记——USART串口

    转载自:http://www.cnblogs.com/microxiami/p/3752715.html 一.USART简介 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异 ...

  9. STM32学习笔记——USART串口(向原子哥和火哥学习)

    一.USART简介 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换.USART利用分数波特率发生器提供宽范围的波特率选择. S ...

随机推荐

  1. Zabbix 添加对交换机端口流量超出阈值的监控

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 22 Zabbix 添加对交换机端口流量超出阈值的监控 本文主要讲解利用zabbix 添加对交换机 ...

  2. 自学Linux Shell2.1-进入shell命令行

    点击返回 自学Linux命令行与Shell脚本之路 2.1-进入shell命令行 进入文本命令行界面(CLI)两种方法: 控制台终端 图形化终端 1. 通过Linux控制台终端访问CLI 按下Ctrl ...

  3. 洛谷 P2292 [HNOI2004] L语言 解题报告

    P2292 [HNOI2004] L语言 题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章\(T\)是由若干小写字母构成.一个单词 ...

  4. POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Network / FZU 1161 (网络流,最大流)

    POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Networ ...

  5. ACCESS与SQL Server下SQL Like 查询的不同

    在ACCESS中LIKE的用法Access里like的通配符用法是这样: “?”表示任何单一字符: “*”表示零个或多个字符: “#”表示任何一个数字 所以应该是: select * from dat ...

  6. JAVA过滤器的使用(Filter)

    request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf ...

  7. 2018年湘潭大学程序设计竞赛 H统计颜色

    链接:https://www.nowcoder.com/acm/contest/105/H来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  8. gdb调试1--包括反汇编及文件编码设置

    一.编译 gcc的完整编译过程大致为:预处理->编译->汇编->链接 前三个步骤分别对应了-E.-S.-c三个选项. 编译阶段 命令 截断后的产物     C源程序 预处理 gcc ...

  9. STM32 CAN

    STM32普通型芯片的 CAN 有14组过滤器组(互联型有28组过滤器组) ,用以对接收到的帧进行过滤.每组过滤器包括了2个可配置的32位寄存器:CAN_FxR0和 CAN_FxR1.对于过滤器组, ...

  10. C#使用Ado.Net读写数据库

    1.使用DataReader方式读取资料 [csharp] view plain copy String connString = ConfigurationManager.ConnectionStr ...