单片机串口协议
我记得51单片机加一块max232芯片就可以实现和PC的串口通信,最近又看了一些串口协议的内容,现在有点糊涂了。单片机跟pc串口通信,不是不用写协议的吗,只要设置相关的寄...
我记得51单片机加一块max232芯片就可以实现和PC的串口通信,最近又看了一些串口协议的内容,现在有点糊涂了。单片机跟pc串口通信,不是不用写协议的吗,只要设置相关的寄存器就可以进行通信了,为什么有的书上有说要写串口协议。望各位大侠帮我解答下。
展开
展开全部
1、MAX232电平转换芯片是使单片机和pc串口的电平一致,这是通信的必要条件
2、设置SCON、PCON、TCON等寄存器都是在单片机编程时设置的单片机串行通信参数
3、单片机和上位机程序必须设置一样的波特率
4、串口通信协议是编程者自己要制定的,使得通信双方能够使接收方识别收到的数据是什么意思,发送方也能在明确目的的前提下发出正确的数据
串口通信是以数据包或称为数据帧为单位传送的,那么我们在制定通信协议的时候,其实就是在指定一个数据包的位数以及每个位或部分位所代表的信息
比如一个数据包AA 02 TT 02 32 58 78 DD(16进制ASCII码)由单片机传到了上位机PC,那么PC就要根据我们自己预先制定的通信协议来识别它,比如可以这么指定AA表示起始位,02表示第二个下位机传上来的数据,TT表示传上来的是温度, 02 32 48 78是温度数据,DD是停止符,表示数据包传送完毕 等待下一帧数据传送。
2、设置SCON、PCON、TCON等寄存器都是在单片机编程时设置的单片机串行通信参数
3、单片机和上位机程序必须设置一样的波特率
4、串口通信协议是编程者自己要制定的,使得通信双方能够使接收方识别收到的数据是什么意思,发送方也能在明确目的的前提下发出正确的数据
串口通信是以数据包或称为数据帧为单位传送的,那么我们在制定通信协议的时候,其实就是在指定一个数据包的位数以及每个位或部分位所代表的信息
比如一个数据包AA 02 TT 02 32 58 78 DD(16进制ASCII码)由单片机传到了上位机PC,那么PC就要根据我们自己预先制定的通信协议来识别它,比如可以这么指定AA表示起始位,02表示第二个下位机传上来的数据,TT表示传上来的是温度, 02 32 48 78是温度数据,DD是停止符,表示数据包传送完毕 等待下一帧数据传送。
展开全部
比如你设置寄存器的时候会设置波特率,奇偶校验位,停止位啥的,这就是协议。变成的时候只需设置一下寄存器就行,其他的有硬件自动完成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能正确 收发数据 就是 串口通信了
但 要 完成 复杂 功能、任务 就得 有 协议
但 要 完成 复杂 功能、任务 就得 有 协议
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的非常对,只用232芯片就可以实现单片机与PC机的通讯,但是在为了防上误码情况下,而设置了通讯协议.或都说你加了转换芯片这只是在硬件上具备了通讯条件,但你在通讯过程中所传输的数据是否正确.是否有干扰信号的串入等.都是靠通讯协议的设置来保证可靠性的.这就象间谍接头时进行对暗号一样,只有暗号对了,才进行信息交换.并不是与任一个会说话的人进行情报交换.对于以上的例子有了芯片只是说两个人能够对话了,但能否接上暗号.还得有协议.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于一些芯片比如STC系列通信协议已固化好
对于如AT系列需要自己写
对于如AT系列需要自己写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询