有办法设定数据格式为 起始位+13位数据位+终止位这样的格式吗

2019-07-18 16:15发布

现在一般异步串口通信格式帧都为:起始位(0)+8位数据位+终止位(1,1.5,2),但如果我单片机起数据采集的作用,完整的一组二进制数据是十三位,是要分两次传送,变为起始+8位+终止位,起始+(有效)5位+终止位吗??   
有办法设定数据格式为  起始位+13位数据位+终止位这样的格式吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
shimx
1楼-- · 2019-07-20 10:15
 精彩回答 2  元偷偷看……
zhaoxqi
2楼-- · 2019-07-20 15:59

RS232那个通信标准就是接收7或者8个位的数据,没有别的可选。不要瞎指挥了,16位单片机的UART口也一样
shimx
3楼-- · 2019-07-20 16:38

非要这样搞,用一个IO口来模拟Uart了,搜一下有现成的代码。改改就能用了,这么低的速率,一次收发几万bit都没问题
午夜粪车
4楼-- · 2019-07-20 20:01
这是异步通信,双方没有同步时钟,按约定的波特率,使发送方按约定的时间发送数据,接收方在预定的时间范围内采样数据线,发送起始位的目的就是约定各自动作的起始时刻。
但是双方的时钟不完全同步,经过若干位之后,就导致某一方没有按照约定的时刻动作(超前了或滞后了),导致数据传输错误。所以异步通信多数要求帧的长度有个上限,无限长的数据帧没有推广的价值。

一次通信中各帧的长度如果不同,可能会出问题,例如相邻两帧的长度不同而前一帧丢失,就会把后一帧当做前一帧接收,结果这一帧就会在帧边界的判断上出错。
午夜粪车
5楼-- · 2019-07-20 23:34
还应该防止出现下面情况:协议规定多帧通信,发送结束后接收方应返回一个应答帧,结果由于某种原因,发送的某一帧丢失了,接收方还在等待,而发送方以为已经发送完了而再等待应答帧,就会陷入死锁。
liliang9554
6楼-- · 2019-07-21 03:05
 精彩回答 2  元偷偷看……

一周热门 更多>