STMCU小助手
发布时间:2022-12-27 18:00
|
通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换1 W# z0 F$ M, P- z; x1 t* F+ G " B. f1 a4 ]+ S" N USART利用分数波特率发生器提供宽范围的波特率选择,它支持同步单向通信和半双工单线通信,还允许多处理器通信+ H7 N' d% [4 n+ J5 t% I8 u, K 3 {( p. [, @% a# A- v USART的主要特性如下:* d! Z! |9 W7 N* Y/ V 全双工的,异步通信 NRZ标准格式 分数波特率发生器系统(发送和接收共用的可编程波特率,最高达4.5Mbits/s) 可编程数据字长度(8位或9位)1 C- C9 e# l' V7 S6 e/ | 可配置的停止位-支持1或2个停止位 发送方为同步传输提供时钟 单独的发送器和接收器使能位; `+ R8 j6 G% y& d) k: W5 Y 检测标志(接收缓冲器满,发送缓冲器空,传输结束标志)& m) V, o" ^, t; E; |) u- L4 m 校验控制(发送校验位,对接收数据进行校验) 接口通过三个引脚与其他设备连接在一起 RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据 TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活, 并且不发送数据时,TX引脚处于高电平# g7 T6 m0 d! y+ f; Z* A# N
' J. G: b' N$ ]$ y! s ! X2 Z7 F! i& [' _ 寄存器方面:& [, K; F' C" }& _; H/ w- J7 i 一个状态寄存器(USART_SR) 数据寄存器(USART_DR) 一个波特率寄存器(USART_BRR),12位的整数和4位小数) M/ d# D5 t2 @; w' ` 一个智能卡模式下的保护时间寄存器(USART_GTPR) 字长可以通过编程USART_CR1寄存器中的M位,选择成为8或9位。在起始位期间,TX脚处于低电平,在停止位期间处于高电平。( \' J, ~% ?6 D, _& K# z $ l1 M( k2 A% \ F 空闲符号被视为完全由’1’组成的一个完整的数据帧,后面跟着包含了数据的下一帧的开始位(‘1’的位数也包括了停止位的位数)。 断开符号 被视为在一个帧周期内全部收到’0’(包括停止位期间,也是’0’)。在断开帧结束时,发送器再插入1或2个停止位(‘1’)来应答起始位。: w% z$ b0 B( w; S. B; m9 ~" w+ ?2 f 发送和接收由一共用的波特率发生器驱动,当发送器和接收器的使能位分别置位时,分别为其 产生时钟。
在USART发送期间,在TX引脚上首先移出数据的最低有效位。在此模式里,USART_DR寄存器包含了一个内部总线和发送移位寄存器之间的缓冲器。每个字符之前都有一个低电平的起始位;之后跟着的停止位,其数目可配置) G' U- ]8 \2 y4 _6 g * {0 ~2 T9 g/ L 在USART接收期间,数据的最低有效位首先从RX脚移进。在此模式里,USART_DR寄存器包 含的缓冲器位于内部总线和接收移位寄存器之间/ c8 K5 d$ o. v5 Y " v# d! t% R' H; Y: Q2 ] ' m7 B( {" p F! q; r 分数波特率的产生 接收器和发送器的波特率在USARTDIV的整数和小数寄存器中的值应设置成相同: |% c9 t1 h9 h- ]/ U
USARTDIV是一个无符号的定点数。这12位的值设置在USART_BRR寄存器 & T8 v: N$ D0 E* M 注意:在写入USART_BRR之后,波特率计数器会被波特率寄存器的新值替换。因此,不要在通信进行中改变波特率寄存器的数值 USART的寄存器# R( M/ q( e/ v" z0 D 可以用半字(16位)或字(32位)的方式操作这些外设寄存器 状态寄存器(USART_SR) ) A' r# a$ d1 k5 P. b5 t1 ?( t& j
* b$ v' g% b k+ a C+ c5 X# f4 j
数据寄存器(USART_DR)3 \- p$ l! D- s3 M$ Q* O! V 5 s& [5 K+ z7 K( ?0 P, _ N
& A \9 C. o1 z0 E7 Z; T 波特比率寄存器(USART_BRR)3 m: X* B( V9 W2 d- ~& B" @
控制寄存器 1(USART_CR1)
) W7 W" p w: O& m/ s' B4 W
控制寄存器 2(USART_CR2)8 I8 J8 f7 n6 `; |" e ; Q. P% c! _; m6 V9 N' r4 y) M
控制寄存器 3(USART_CR3)
9 c2 E4 o5 a' Y
0 j; {* k4 B% ?9 J! v 保护时间和预分频寄存器(USART_GTPR)
+ ~! m: }- |: } ———————————————— 版权声明:CodeForCoffee, i" K" q. v; V8 [2 n& V, s |
经验分享 | USART接收的数据怎么错位啦?
经验分享 | 基于STM32H7 UART 空闲事件及DMA传输示例
经验分享 | STM32G4 UART+TIMER+DMA应用示例
经验分享 | STM32H563 UART+DMA 2D功能演示
经验分享 | 基于STM32H563演示UART+DMA功能
【STM32U3评测】实现双通道串口通信系统
STM32G系列RS485自动收发控制以及自适应波特率实战
【STM32H7S78-DK评测】CoreMark移植和优化--兼记printf重定向实现方法及常见问题
【STM32MP135-DK】裸机移植shell
NUCLEO-U545RE-Q评测】3. 串口基本收发测试
微信公众号
手机版