串口在学校就是写过的,最近又重新写了一下,其实很简单,只是一个时序而已,在这里记下来,做个小总结,怕忘记了再查的话麻烦:
接收:接收时序是当检测 到RX引脚有下降沿产生时,即认为线路有数据传输,下降沿是接收数据的起始位,然后是8位的数据位,最后一个高电平表示结束位(或终止位),数据接收过程,按从低位到高位的次序依次接收。
发送:其过程与接收时序一样。
空闲状态:空闲状态处于高电平。
数据传输顺序:数据传输是先传输LSB,最后传输传输MSB.
波特率:单位时间内载波变化的次数。
仿真过程中,当连续有数据传输时,可以看到发送完一位终止位后,紧跟着就是一下个起始位。
以下摘自http://www.21ic.com/jichuzhishi/datasheet/RS232/ziliao/701059.html
Uart串口与RS232串口的区别
Uart这里指的是TTL电平的串口;RS232指的是RS232电平的串口。
TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平。
Uart串口的RXD、TXD等一般直接与处理器芯片的引脚相连,而RS232串口的RXD、TXD等一般需要经过电平转换(通常由Max232等芯片进行电平转换)才能接到处理器芯片的引脚上,否则这么高的电压很可能会把芯片烧坏。
我们平时所用的电脑的串口就是RS232的,当我们在做电路工作时,应该注意下外设的串口是Uart类型的还是RS232类型的,如果不匹配,应当找个转换线(通常这根转换线内有块类似于Max232的芯片做电平转换工作的),可不能盲目地将两串口相连。
另外再补充其他一点,在自己做串口线时,一般按照下面的规则制作:
PC 对应 外设(例如某开发板)
GND ------- GND
RXD ------- TXD
TXD ------- RXD
CTS ------- RTS
RTS ------- CTS
通常是按照以上交叉一次就可以了,但如果开发板上的串口的RXD是与板上的CPU的TXD相连的,其他也类似的话,即说明已交叉了一次了,那么我们在制作串口线时就不需要按照以上的对应关系做了,而是RXD对应RXD,TXD对应TXD,其他也一样。