你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32 USART简介

[复制链接]
STMCU小助手 发布时间:2022-4-2 21:00
01. USART简介
, P" F  v5 @6 G, C% H* `, c0 k  e通用同步异步收发器 (USART) 能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。USART 通过小数波特率发生器提供了多种波特率。* o9 h' x  O, B

4 H6 b& x2 V, E% f它支持同步单向通信和半双工单线通信;还支持 LIN(局域互连网络)、智能卡协议与 IrDA(红外线数据协会)SIR ENDEC 规范,以及调制解调器操作 (CTS/RTS)。而且,它还支持多处理器通信。
7 X& b/ v% l4 Z2 s
% @5 O% @, P; {( ^  ~# C通过配置多个缓冲区使用 DMA 可实现高速数据通信。+ R. p) W8 i) N
5 {" o5 C3 t7 Z" D: ]7 A: m
02. USART主要特性0 ~# v  l1 B6 R! ^! ~
● 全双工异步通信
4 `' o- _3 ?! O! C1 o● NRZ 标准格式(标记/空格)9 b- ~/ J2 y+ Y9 u. k& w
● 可配置为 16 倍过采样或 8 倍过采样,因而为速度容差与时钟容差的灵活配置提供了可能' o3 d! Y/ L* y. F5 a7 Y& g+ ?# q7 S
● 小数波特率发生器系统
: j; ^% l- U' `( l2 m— 通用可编程收发波特率(有关最大 APB 频率时的波特率值,请参见数据手册)。
) c# D1 t" C4 Z● 数据字长度可编程(8 位或 9 位)
0 v  ]: K9 Y# w+ b1 H6 S* e, x' Y● 停止位可配置 - 支持 1 或 2 个停止位( g5 W7 K* ^/ ^
● LIN 主模式同步停止符号发送功能和 LIN 从模式停止符号检测功能
7 P* b. p" v: F6 L9 b— 对 USART 进行 LIN 硬件配置时可生成 13 位停止符号和检测 10/11 位停止符号# _/ x. c5 r. \: [
● 用于同步发送的发送器时钟输出
6 j: o% }% ~8 X* y1 B% J+ E● IrDA SIR 编码解码器
& O5 u3 |" R; O2 y+ ^! D. C— 正常模式下,支持 3/16 位持续时间
, e' G' g* s) W" A" [: I- r! C1 e● 智能卡仿真功能
  C7 C: h/ c( c— 智能卡接口支持符合 ISO 7816-3 标准中定义的异步协议智能卡3 n% H- R2 _& J' ?3 t- D
— 智能卡工作模式下,支持 0.5 或 1.5 个停止位8 L+ R$ f5 t/ V. N  H
● 单线半双工通信
& j9 ?" d6 L- Q/ v* _: {% _● 使用 DMA(直接存储器访问)实现可配置的多缓冲区通信
+ _6 ?% l3 a, L/ l: m— 使用 DMA 在预留的 SRAM 缓冲区中收/发字节! }3 u1 `  c0 x, w8 _, s
● 发送器和接收器具有单独使能位
* o8 X. X) @, }$ ]5 W: R  ^) x● 传输检测标志:
( P% [4 z' E6 F3 g— 接收缓冲区已满
# u/ }% g% J3 x' d! S4 z! Z— 发送缓冲区为空
6 {' C$ c" i4 Q+ Z$ H' T— 传输结束标志1 B0 F! u  s6 c; d- D
● 奇偶校验控制:
4 X3 K: e+ s' a8 {# t; ]— 发送奇偶校验位# P8 x- R. z3 t3 X0 V0 s" L
— 检查接收的数据字节的奇偶性
& ]7 F! l8 v! \+ k/ U; f
# [; b% A! k. k3 j. h& |, I, m; x● 四个错误检测标志:
4 i. V' \) l2 C) y5 t1 `" V- T. k3 f— 溢出错误+ O: S* r: q* e3 b; z9 `
— 噪声检测' S& d- n; `3 Q- ?: x5 }0 `5 d/ `
— 帧错误
7 Z+ q3 v+ o$ H/ \+ `/ J7 O) K— 奇偶校验错误- H) X' K$ t- q1 j, k( q
● 十个具有标志位的中断源:! w- _! M* I% z2 E
— CTS 变化4 K$ B; O0 ^! c5 I8 k
— LIN 停止符号检测
/ |" V* N7 |; `+ l— 发送数据寄存器为空$ X" g9 v" g" [' g2 c" P
— 发送完成2 j3 ~* K4 Q) Q7 |, r$ ~
— 接收数据寄存器已满1 O1 b4 l1 q9 c' ~, m
— 接收到线路空闲" x' ^" L' I8 |9 O0 M
— 溢出错误, B) v/ \) |, Z# N) }
— 帧错误1 P: N  d% ~$ a; W* Q
— 噪声错误
6 z- {7 ~. C# p1 a  S— 奇偶校验错误! c) p  h* T! u/ Y
● 多处理器通信 - 如果地址不匹配,则进入静默模式2 K. h/ l4 U9 v& K) Z  |! z7 V
● 从静默模式唤醒(通过线路空闲检测或地址标记检测)
* Z+ r' I/ _/ H" j1 c  |# L2 }● 两个接收器唤醒模式:地址位(MSB,第 9 位),线路空闲
, A9 g4 E6 ?' b
; ?; k1 k- Y8 h! p2 S03. USART功能说明, }0 q+ ~- F. p/ v8 f
接口通过三个引脚从外部连接到其它设备。任何 USART 双向通信均需要至少两个引脚:接收数据输入引脚 (RX) 和发送数据引脚输出 (TX):) y# D6 Q9 n1 ^4 ]$ P- A$ \

4 d2 M+ {1 J3 a  F: zRX :接收数据输入引脚就是串行数据输入引脚。过采样技术可区分有效输入数据和噪声,从而用于恢复数据。
7 G+ ~5 V* J4 a# p
% A0 C( b. h" r6 S, y2 }! T& ~TX :发送数据输出引脚。如果关闭发送器,该输出引脚模式由其 I/O 端口配置决定。如果使能了发送器但没有待发送的数据,则 TX 引脚处于高电平。在单线和智能卡模式下,该 I/O用于发送和接收数据(USART 电平下,随后在 SW_RX 上接收数据)。0 e0 y% J; p% l
9 Z8 p, [. L$ j; v0 u' U
04. USART字符说明
: @( Y2 }2 y+ w% z可通过对 USART_CR1 寄存器中的 M 位进行编程来选择 8 位或 9 位的字长。
. u* i& n( |4 c
: ^8 i8 K8 e7 p' C% I8 w$ FTX 引脚在起始位工作期间处于低电平状态。在停止位工作期间处于高电平状态。空闲字符 可理解为整个帧周期内电平均为“1”(停止位的电平也是“1”),该字符后是下一个数据帧的起始位。
+ r2 G1 V, X$ e8 Z! B8 Y6 Z% }  M/ g2 m2 D% H& ^) k2 s! l$ k
停止字符 可理解为在一个帧周期内接收到的电平均为“0”。发送器在中断帧的末尾插入 1或 2 个停止位(逻辑“1”位)以确认起始位。2 v5 R6 U( O4 y5 F/ n! W
: b2 F( U; m6 u5 D+ B, j" v
发送和接收由通用波特率发生器驱动,发送器和接收器的使能位分别置 1 时将生成相应的发送时钟和接收时钟。
9 d5 K8 w/ r$ R/ w* [; F: A& Q5 L( n
2020082115003198.png ; z, [. C5 S; D& E& @
( Y" P, T9 v; G! C+ `  w
05. USART寄存器
3 r7 d* }) U: N: r9 S5.1 状态寄存器 (USART_SR)7 A6 b; r) b3 B/ j/ l4 Y: d+ A9 Y: T
Status register/ Q) k" N0 v. B4 n  u! x
偏移地址:0x00
7 ]: C4 l- h* |复位值:0x00C0 0000( A. ^7 l1 @8 J! O: ~/ q" L" T

& V' x* [" O/ T 20200821150041903.png . u( x2 D7 f4 l
4 t4 G3 q0 \8 `$ `: u
5.2 数据寄存器 (USART_DR)5 E/ L5 H( v$ _- X0 ?1 ^. h
Data register. l7 x4 W6 X0 d# G' q5 s, _
偏移地址:0x04
9 y/ u$ ]. Q  @8 ^复位值:0xXXXX XXXX2 B, @$ g* c6 `$ [& j# a

* ?# S- o' Z& _& A4 l# x 20200821150051564.png * O3 \& }$ a7 p& _
8 P4 d) n7 v8 g- H, H
5.3 波特率寄存器 (USART_BRR)# L& j; S7 T% D
Baud rate register4 a6 N- o/ Z" i. |# y: K
注意: 如果 TE 或 RE 位分别被禁止,则波特计数器会停止计数。' x7 ?' R% w, Y+ v! |
偏移地址:0x08
0 e& ?# x8 s4 Y' _( o' o8 U复位值:0x0000 00006 V9 m  I; e; S+ t9 |7 V

- l2 x" F+ b8 i6 w+ `/ a# z: ?* | 20200821150103821.png - a: C8 Z; n" d, [7 ^' l( Y8 k! r

& O" y6 S, k  n" ]4 X1 c/ [7 {* S位 31:16 保留,必须保持复位值
2 p; T1 c9 n1 }3 Z2 w位 15:4 DIV_Mantissa[11:0]:USARTDIV 的尾数这 12 个位用于定义 USART 除数 (USARTDIV) 的尾数6 U6 ^! Q* {, Q1 \
位 3:0 DIV_Fraction[3:0]:USARTDIV 的小数这 4 个位用于定义 USART 除数 (USARTDIV) 的小数。当 OVER8 = 1 时,不考虑 DIV_Fraction3位,且必须将该位保持清零。1 A! F' E/ H$ i1 U- N
0 |4 U0 a! j: k$ r
5.4 控制寄存器 1 (USART_CR1)# R. `/ u$ `9 r( h/ I( A' K
Control register 1
  d( h; K8 T2 T9 s偏移地址:0x0C0 v- H6 K+ c% g/ Q
复位值:0x0000 00000 H+ T: D# a% i1 K6 [+ X
5 K0 R2 @/ e3 K. A& I( \. f
20200821150117349.png
! b/ N! w( l. N+ T
$ J; l- E& {' X8 B; E" b# ~5.5 控制寄存器 2 (USART_CR2)+ i' \; F* Y' V2 \8 }
Control register 26 L1 \7 l' f1 ^; P9 ^+ c  D
偏移地址:0x10
" N! r6 O  b: v& h4 ~1 |复位值:0x0000 0000
' a. P; i7 y3 a" W2 L' X# q& s1 ]( }- F
20200821150128676.png
" K; ~" S! B$ t; R1 Q' s/ M* C* K7 G% O/ U
5.6 控制寄存器 3 (USART_CR3)' W7 @/ Y: S3 x4 x
Control register 3
! T( J; Q- \0 N: @7 z6 k偏移地址:0x14; ^4 a5 f1 l: k5 b
复位值:0x0000 00006 v! n, n% [# {9 p" u% ?

/ w! V* T! ]3 J8 B, J  U 20200821150137488.png
! x4 [9 s3 e& d0 X( g! d1 {* ]6 s
5.7 保护时间和预分频器寄存器 (USART_GTPR)/ `5 s3 u3 g0 v- m
Guard time and prescaler register
6 C5 {/ _( X* L偏移地址:0x181 j2 R6 Q/ N# C. R
复位值:0x0000 0000
/ V9 T" J9 Y. t) G 20200821150146740.png
1 X6 S& g$ N# O0 M4 P# X4 e" g9 U* Y, i! N! c

& W7 r& y) h2 X2 g# U$ d! S# F* U0 v! C) V* R6 U

) d4 r( R, S, \' A$ j
赞 收藏 评论0 发布时间:2022-4-2 21:00

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版