单片机进行串口通信,需要设置波特率和一些电气参数(一般定义1BIT起始位,8BIT数据位,1BIT停止位,无奇偶校验位)这些就属于通信协议的范畴。再则,单片机接收的数据,需要进行处理,所以你必须要知道接收的数据代表的意义,这也是通信协议,只是不太严格的通信协议。而比较严格的通信协议则一般会定义起始字节,数据字节,校验字节,结束字节等等,这点对单片机来说到不是必须的,你只要知道接收到相应的数据,能够进行处理就好了。
51单片机的话可以通过外接一个max232与电脑通信 通信的协议都是硬件弄好了的,用户只需要用就行了;如果是51单片机之间的通讯可以直接把两块单片机的RXD和TXD交叉连接就可以
但是这样的传输距离比较近而且容易受到干扰,想要远距离传输还是需要用到232或者是422、485传输协议。 说明:232的软件协议是单片机内部固化好的,硬件协议需要用到232芯片。
不要协议收到的是一系列的数据流。但你对数据流的处理,必须有最简单的定义,如数据流的起始字节,数据流的长度,数据流的CRC检验。这就是协议。
如果两个单片机之间的通信内容能用一个字节来表达清楚,则不需要任何协议;就相当于两个单片机之间定义了255种状态而忆。
谢谢!
双方必须约定:波特率、位数、奇偶校验的方式。
这些是最基本的串口通信协议。
那是必须的,没有协议怎么知道收到的数是什么意思?