目录
串口介绍
串口就是一种传输数据用的接口,U盘,雷电接口等。就是可以和其他单片机或者外设传递数据的接口(交流接口)。
介绍陀螺仪与蓝牙串口
陀螺仪
能够测量X,Y,Z轴的角度和加速度等等,然后传递给单片机,可以通过串口来将数据传递给单片机。
蓝牙串口
可以通过相应的软件来进行传递数据,就是将手机要发送的数据传给蓝牙串口,后蓝牙串口传递给单片机。
串口简单电路
VCC:提供电压电源,驱动内部电路。
TXD:Transmit Data,发送数据线
RXD:Received Data,接受数据线
GND:电气参考点,信号传输。
不妨想一想,当设备之间需要传递一串字符数据,该怎么传输呢?电路又不能直接将字符传递过去,这就需要请出ASCII码了。我们知道,每个字母或数据都有一个对应的ASCII码。比如“a”的码为“97”,转化为二进制为“0110 0001”,这个二进制就代表“97”,这就为一个信号。
然而,如何将“0110 0001”发送出去呢?
这就需要介绍
电平标准
电压的计算就是VCC相对与GDN的电压,就是VCC-GND的电压,但GND一般为0。
而两线压差与上述差别不大,就是GND可能不一定为0.
拓展:VCC相对GND的电压是电路设计和分析中描述直流电源电压水平的一个参数,而两线压差则是描述两个不同电位点之间电压差的一个概念。
TTL电平与RS232电平的缺点:最大传输距离为13左右米。
RS485:可以传输1000米以上。
常见通信接口比较
全双工:相当于打电话,同时间双方可以同时通信(讲话),两线。
半双工:相当于对讲机,同时间双方只有一个可以通信(讲话),一线。
单工:相当于电视遥控器,无论任何时间都只能一方发送给另一方数据,一线。
异步,同步中的通信速率,可以比作讲话速度,就是双方必须保持相同的说话速度,否则可能听不懂,听不清。打个比方,甲方是1秒发一个数据,而乙方是0.5秒读一次数据,这样乙方永远读的是甲方数据的一半。
异步:就是在传递信息,通信过程前就将速度设置好(这个需要自己配置好)。
同步:就是给个时钟线,当这根线上有数据时就读取。
还有一个通俗讲解:异步就是给你个翻译本,自己翻译。同步就是我给你翻译。
51单片机中的UART
电路图
时序图
波特率:通信的速率,因为异步,所以需要自己设置。就是讲话的速度。
校验位:如图,9位数据格式中。比如发送数据“0110 0000”中的 1 有2个,为偶数,就会在发送一个“1”来表示数据位有偶数个1,这个位就叫做校验位。 如果数据为“0110 0001”中的1有 3 个,为奇数个,就会在校验位发送一个“0”。
这有什么用呢?
打个比方,如果数据是:“0110 1000”,后校验位就是“0”。总的发送就为“0110 10000”。但中途有个信号异常,变为了0,比如变为了“0100 10000”,这时接受方在接受到最后的校验位时“0”,0代表这个数据1有奇数个,但此刻为偶数个,所以可以断定这个数据发送错了,可以选择不接受。
有人会问,如果突然有两个数,一个1 一个0 突变,那怎么样,这确实有可能,但概率极低,可以不计。也就是说,一般只有一个会变,因为两个都变化的概率极低。如果真的两个都变,那就只能接受了。
串口模式图
T1溢出率:它定义为定时器溢出一次所需的时间的倒数。例如,如果定时器每50秒溢出一次,则溢出率为1/50 = 20Hz。
T1控制的就是发送和接收的速率,就是一位一位读取8位数据的速率。
发送数据:先将8位的数据写入SBUF缓存寄存器中,在通过 控制门 发送(TXD)出去。
接收数据:将8位数据先通过移位寄存器 一位一位地写入SBUF缓存寄存器中
读写操作:如果是a=SBUF,就是读操作。
如果是SBUF=a,就是写操作。
数据的接收和发送是自动执行的,就是当你写入数据到发送寄存器中时,系统自动帮你发送数据,并产生一个发送中断(transmit