串口通信字节问题
答案:2 悬赏:0 手机版
解决时间 2021-03-18 04:11
- 提问者网友:你挡着我发光了
- 2021-03-17 14:24
下位机发送给pc一个数据包 其中包含一个2byte的数字 在pc端怎么接受这个数据包byte[]数组中的这个2byte的数字呢
最佳答案
- 五星知识达人网友:雾月
- 2021-03-17 14:51
要把每个byte都serialise一下。不知道你用的语言是什么。在java和C++里面都可以实现。
1. 在java里面,我记得有现成的类似于(de)serialise的function可以用。看下面的reference。
2. 如果在C或者C++里面,你可以用bit的操作符 & 和 | 来组装自己的数字,比如(我随手打的,可能有错,意思差不多):这里写的是deserialise的function, serialise的正好相对;假设你读入的那个byte存在y1和y2里面(y1是高位);
int x=0;
x=y1;
x << 8;
x=x&y2;
这样x里面就可以读入你的数字了。当然这在java里面能做。
1. 在java里面,我记得有现成的类似于(de)serialise的function可以用。看下面的reference。
2. 如果在C或者C++里面,你可以用bit的操作符 & 和 | 来组装自己的数字,比如(我随手打的,可能有错,意思差不多):这里写的是deserialise的function, serialise的正好相对;假设你读入的那个byte存在y1和y2里面(y1是高位);
int x=0;
x=y1;
x << 8;
x=x&y2;
这样x里面就可以读入你的数字了。当然这在java里面能做。
全部回答
- 1楼网友:duile
- 2021-03-17 16:10
假设你的串口正常使用时,误码率为万分之一,那么如果一帧数据传10字节,总共就是100比特,这帧数据发生错误的概率就大约是1%。那就意味着每传输100帧数据,就有一帧因为发生错误而要重传。这在一般的系统中还是可以接受的。
如果万分之一的误码率之下,你硬要一帧数据传400字节,那就是4000比特,那么这帧数据发生错误的概率就高达33%,就意味着每三帧数据,就有一帧需要重传,而重传也存在较高的再次发生错误的概率。
除了误码导致重传,还要考虑一帧数据的交互耗费的时间,数据帧越大,这帧数据传输耗费的时间越长,通信的实时性就越差。同样,双方的cpu耗费的缓冲区资源就越大。潜在的稳定性就越差。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯