slamugv使用说明--7.串口调试上

串口调试
串口通讯这是本教程第一次讲通讯。之后因为本块板子是核心板,后面的can通讯也是由串口转换而来的,那么就把通讯的基本原理说一下吧。
传输的类型
并行通信:并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。
串行通信:串行通信是将数据逐位按顺序在一条传输线上传送。
在这里插入图片描述
传输方式
而根据传输的方式不同,可以分为同步通信和异步通信。
同步通信时要建立发送方时钟直接的控制,使双方达到完全同步。
异步通信是指通信的发送和接收设备使用各自的时钟控制数据
传输方向
单工:一个方向传输
半双工:数据传输可以沿两个方向,但是不能同时送达,这是有先后顺序的
全双工:数据可以沿两个方向进行传输,全双工两条线,一条发送数据,一条接收数据
1.Usart cube配置教程
在这里插入图片描述
2.寄存器讲解
在这里插入图片描述

TX:发送数据输出引脚
RX:接收数据输出引脚
Nrts:请求以发送,n表示低电平有效。如果使能RTS流控制,当USART接收器准备好接收新数据时就会将nRTS变成低电平;当接收寄存器已满时,nRTS将被设置为高电平。该引脚只适用于硬件流控制。
Nde:驱动器使能用于激活外部接发器的发送模式,在RS485硬件控制模式下需要这个引脚,DE和nRTS共用一个引脚。
nCTS:清除已发送,n表示低电平有效。如果使能CTS流控制,发送器在发送下一帧数据之前会检测nCTS引脚,如果为低电平,表示可以发送数据,如果为高电平则在发送完当前数据帧之后停止发送。该硬件只适用于硬件流控制。
SCLK:发送器时钟输出引脚。这个引脚只适用于同步模式。
USART 数据寄存器(USART_DR)只有低 9位有效,并且第 9 位数据是否有效要取决于USART 控制寄存器 1(USART_CR1)的 M 位设置,当 M 位为 0 时表示 8位数据字长,当 M位为 1表示 9位数据字长,我们一般使用 8位数据字长。
USART_DR 包含了已发送的数据或者接收到的数据。USART_DR 实际是包含了两个
寄存器,一个专门用于发送的可写 TDR,一个专门用于接收的可读 RDR。当进行发送操作时,往 USART_DR 写入数据会自动存储在 TDR内;当进行读取操作时,向 USART_DR读取数据会自动提取 RDR数据。TDR 和 RDR 都是介于系统总线和移位寄存器之间。串行通信是一个位一个位传输的,发送时把 TDR 内容转移到发送移位寄存器,然后把移位寄存器数据每一位发送出去,接收时把接收到的每一位顺序保存在接收移位寄存器内然后才转移到 RDR。
USART 支持 DMA传输,可以实现高速数据传输。
USART 有专门控制发送的发送器、控制接收的接收器,还有唤醒单元、中断控制等等。使用 USART 之前需要向 USART_CR1寄存器的 UE 位置 1 使能 USART。发送或者接收数据字长可选 8位或 9位,由 USART_CR1的 M 位控制。
发送器
当 USART_CR1寄存器的发送使能位 TE 置 1时,启动数据发送,发送移位寄存器的数据会在 TX 引脚输出,如果是同步模式 SCLK也输出时钟信号。一个字符帧发送需要三个部分:起始位+数据帧+停止位。起始位是一个位周期的低电平,位周期就是每一位占用的时间;数据帧就是我们要发送的 8位或 9位数据,数据是从最低位开始传输的;停止位是一定时间周期的高电平。
停止位时间长短是可以通过 USART 控制寄存器 2(USART_CR2)的 STOP[1:0]位控制,可选 0.5个、1个、1.5个和 2个停止位。默认使用 1个停止位。2个停止位适用于正常USART 模式、单线模式和调制解调器模式。0.5 个和 1.5个停止位用于智能卡模式。
当选择 8位字长,使用 1个停止位时,具体发送字符时序图见图
在这里插入图片描述
字符发送时序图

当发送使能位 TE 置 1之后,发送器开始会先发送一个空闲帧(一个数据帧长度的高电平),接下来就可以往 USART_DR 寄存器写入要发送的数据。在写入最后一个数据后,需要等待 USART 状态寄存器(USART_SR)的 TC位为 1,表示数据传输完成,如果USART_CR1寄存器的 TCIE 位置 1,将产生中断。
名称 描述
TE 发送使能
TXE 发送寄存器为空,发送单个字节的时候使用
TC 发送完成,发送多个字节数据的时候使用
TXIE 发送完成中断使能
接收器
如果将 USART_CR1寄存器的 RE 位置 1,使能 USART 接收,使得接收器在 RX 线开始搜索起始位。在确定到起始位后就根据 RX 线电平状态把数据存放在接收移位寄存器内。
接收完成后就把接收移位寄存器数据移到 RDR内,并把 USART_SR 寄存器的 RXNE 位置1,同时如果 USART_CR2寄存器的 RXNEIE 置 1的话可以产生中断。
在接收数据时,编程的时候有几个比较重要的标志位我们来总结下。
名称 描述
RE 接收使能
RXNE 读数据寄存器非空
RXNEIE 发送完成中断使能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值