借鉴: 串口通信参数设置 https://blog.csdn.net/qq_35682844/article/details/73527057
串口通信协议有哪些 http://m.elecfans.com/article/628091.html
串口通信数据位长度对传输数据的影响 https://blog.csdn.net/kasama1953/article/details/51603687
SPI、I2C、UART三种串行总线协议的区别 https://www.cnblogs.com/jikexianfeng/p/5782203.html
1,基本概念
串行通信:串行通信是指数据的各位依次逐位发送或接收,也就是每一次(或者每一时刻)只能传送一位二进制数位。串行通信优点是节省硬件成本,便于长距离数据传送,缺点是传送速度较慢。
异步串行通信:依靠起始位,停止位保持通信同步的串行通信方式。异步串行通信的数据帧 一般包含1位起始位(通常为低电平),5~8位数据位(通常是二进制的高位率先被发送),1位校验位和1位停止位(1.5位或者2位,通常为高电平)
异步通信对硬件要求较低,实现起来比较简单,灵活。适用于数据的随机发送/接收。但因为每传/接收一个字节都要建立一次同步,所以工作速度较低。
一般单片机中主要采用异步串行通信,帧格式如下:
2,应用中串口通信参数设置
常用校验方式:偶(E)、奇(O)、无(N)。
3,串口通信中的数据位的长度
串口通信的数据位长度可以设置为8、7、6、5。那么改变这个参数会对数据的传输有什么影响呢?
打个比方就是,如果设置数据位长度为6位,那么只会取二进制数的1~6位,高位舍去。
这里用友善串口调试工具和vspd工具大致演示一下:
字母z,ASCII码二进制表示 0111 1010 , 取最低6位,11 1010,ASCII码对应字符:
字符{,ASCII码二进制表示 0111 1011 , 取最低6位,11 1011, ASCII码对应字符;
4,SPI、I2C、UART三种串行总线协议的区别
总线总线,总是和通信离不了关系,我觉得可以认为重要的点在于通信协议。同步串行通信,异步串行通信等等这些,一些讲解单片机的书籍对单片机的串行口有详细的介绍,然后估计再看一看三种总线协议,就明白了。