UART以及串口重定向--什么是重定向?为什么要重定向?

UART以及串口重定向–什么是重定向?为什么要重定向?

异步 :发送方和接收方有各自的时钟

UART协议:每一帧数据都包含起始位,数据位,和停止位。当数据线从高电平跳变到低电平时,作为起始位,当数据线从低电平跳变到高电平时,作为停止位。空闲桢:数据线一直处于高电平;断开桢:数据线一直处于低电平

  1. 起始位:
  2. 数据位:5、6、7、8、9位
  3. 校验位(非必要):和校验,奇校验,偶校验。校验位其实是数据位的最后一位,当数据的前N-1位接收完毕时,接收方就会自动计算前N-1位然后预测第N位应该接收的是高电平还是低电平,如果实际接收到的数据和期待接收的数据不一致,则数据传输出错。
  4. 停止位:
  5. 波特率:每秒传送的bit数。接收方和发送方设置的波特率必须一致,否则接收的数据将会出错

注意:UART协议要求每次只能发送一个数据(5、6、7、8、9位),发送完后要求立刻发出结束信号,因为UART是异步通信协议,即使设置相同的波特率,时钟频率也可能会有误差。如果数据连续发送,并且在接收方和发送方时钟不一致的情况下(比如发送方每10us发送一个bit,接收方每9us接收一个bit(检测数据线的电平状态)),在大量数据流的传输时,误差就会一直堆积,导致传输出错!!!

UART控制器 :一般情况下,MCU都具有UART控制器,我们使用串口通信也是通过配置UART控制器相关的寄存器设置通信协议的细节。当然也可以通过软件模拟窗口通信协议。

接收数据的三种方式:

  • 轮询RDR寄存器
  • 设置接收中断
  • DMA传输

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f6uRfTf6-1668958989281)(C:\Users\WQL\AppData\Roaming\Typora\typora-user-i

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值