应该分清楚串口通信协议和基于串口的应用协议两个级别的协议。串口通信协议是固化在芯片级别的,只要设置好通信参数即可;应用协议则是一串byte数组,由用户自定义,类似有CRC校验、CS校验、帧头、帧尾等字节,下面是用格西烽火做的一个例子。
当然可以。串口助手里设置好就行。比如这样设置:波特率9600,数据位8,停止位1,校验为:奇校验、偶校验、标志位....任选其一。停止位:1.
单片机里按同样设置就行。
11位是一个字节,加了开始位,停止位,还有一个TB8,多机通信地址和数据通信区分位,不是一帧,确切的说是一个字节
楼主概念错误。串口通讯里叫帧,是指完成一次完整的数据传送。一帧里可以包含多个字节(同步通讯),也可以包含一个字节。比如包含了开始位,停止位,还有一个多机通信地址和数据通信区分位TB8的一次异步发送叫一帧。其中有效的信息是一个字节。
单片机工作在方式3,波特率9600,一个开始位,一个停止位,一个TB8区分地址和数据标志位,没有校验位的,校验用的是CRC16的,在串口调试助手里的设置:波特率9600,一个开始位,一个停止位,校验方式设为“无”,为什么没有数据返回呢?在系统里就有数据返回,有人说串口调试助手只能调试8位的数据,而单片机工作在方式3,增加一个TB8位,总共是九位数据,所以串口调试助手调试不了,是这样吗?
你校验方式设置错了啊!咋能设置成 无 呢? 你是要看单片机有没有回传数据对吧?先看发送的是地址还是数据,再看你的SM2位咋个弄的。总之确信单片机程序没错啦,也就是确信有回传数据了,把校验方式设置成:mark.再看。
什么是“数据包”?
这11位是应该叫做“一帧”吧。
可以,不信你可以试试嘛