网站开发常用问题,东莞城乡建设网站,外网浏览网站,西安网站设计与建设USART:一种片上外设#xff0c;用来实现串口通信#xff0c;就是stm32内部的串口 USART简介 串并转换电路
串行通信和并行通信
串行#xff1a;一根数据线#xff0c;逐个比特位发送 为什么要串并转换 移位寄存器 USART的基本模型 通过查询SR#xff08;状态寄存器…USART:一种片上外设用来实现串口通信就是stm32内部的串口 USART简介 串并转换电路
串行通信和并行通信
串行一根数据线逐个比特位发送 为什么要串并转换 移位寄存器 USART的基本模型 通过查询SR状态寄存器 可知数据有没有发完有没有接收到数据等 CR配置寄存器 BPR波特率寄存器
产生一个频率可调的脉冲信号 数据的发送 双缓冲和连续发送
TDR和移位寄存器分别对应两个缓冲
数据发送过程中的问题
1.数据发送过快导致数据覆盖
2.数据说明时候发送完成 SR状态寄存器
通过读取标志位获取USART的工作状态 每次向TDR中写值之前先查询TXE标志位
TXE1则TDR寄存器为空可以写 TC1则两个寄存器都为空表明数据发完了 单个数据的发送 数据的连续发送 错为什么错并不是双缓冲的连续发送 数据的接收
存在的问题不知道什么时候读数据 有数据时要赶紧读RDR里的数据 接收单个数据 接收多个数据 错误标志位 接收方 数据接收方会采集码元过采样的方式采集以16倍的波特率采集三次采的都是1则1 过载错没有及时的读数据导致接收方的移位数据寄存器中的数据被后来的数据覆盖则ORE为1 错误标志位只对数据的接收方有效
所以这些程序只写在数据接收方 为什么要先备份
错误标志位指示的是当前在RDR寄存器里的数据的错误情况第三步把数据读出来后标志位会清空