嵌入式硬件之串口uart
UART硬件
UART引脚定义
- TXD : 串行数据发送引脚
- RXD : 串行数据接受引脚
UART是串行异步通信,低位先传输。
UART通信协议
异步通信以一个字符为传输单位,波特率规定的是每个字符间内位传输的间隔时间,而每个字符间传输间隔时间是不固定的。
uart通常有以下几个概念
- 空闲位 : 在txd或rxd没有被占用的时候(没有数据发送),txd与txd为高电平(即空闲位)。
- 起始位 : 在空闲状态下根据波特率txd发送一个位的低电平(告诉对方开始接受数据了。)
- 数据位 : 一般一个字节数据从低位开始发送(LSB在前,MSB在后)
- 校验位 : 发完数据位后,接上校验位(奇偶校验或者无,这个双方要约定好,否则会乱码)
- 停止位 : 发送完校验位后,接上1.5,2bit的高电平(表示这个字节发送完成)
uart时钟波特率问题
uart时钟是靠起始位和波特率来同步的。每发送一个字符都会重新校准起始位。
众所周知,如果波特率不一样肯定会乱码。