uart:通用异步收发器,是一种全双工串行异步通信
波特率与bps
实际上波特率并不等于bps。
波特率:一秒钟传输码元的个数
bps:一秒钟发送的比特位位数
而码元是承载信息量的基本信号单位,一个二进制码元占一个比特位
所以仅传输二进制码元时,bps等于波特率
同步和异步方式:
异步:异步通信中的接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟。发送方发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。
同步:同步通信中双方使用频率一致的时钟 ,它的分组相比异步则大得多,称为一个数据帧,通过独特的bit串作为启停标识。发送方要以固定的节奏去发送数据,而接收方要时刻做好接收数据的准备,识别到前导码后马上要开始接收数据了。
配置串口大的步骤(使用轮询方式):
- 波特率
- 起始位、停止位、奇偶校验位、数据位
- 收发模式
- 需要分别知道读取和发送串口数据的寄存器
- 需要知道什么时候收数据,什么时候发数据,即状态寄存器。
波特率计算方法:
UBRDIVn用来保存整数位。
计算方式:( SCLK_UART / (bps * 16) ) - 1
UFRACVALn用来保存小数位
计算方式:( SCLK_UART % (bps * 16) ) * 16