C#中串口函数有没有可以一个位一个位分开的接收数据的

如果没有的话我应该怎么做才能一个位一个位的接收... 如果没有的话我应该怎么做才能一个位一个位的接收 展开
 我来答
DoramiHe
2018-01-24 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59542
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
问题应该是出在这句:
bytesRead = serialPort.Read(BRecieve, 0, bytesToRead);
楼上的说法有点意思,但是不完全透彻。
其实问题在于串口返回数据时,它返回的速度可能不会太快,而程序执行是非常快的。
也就是说,当执行到Read语句时,串口根本没来得及返回那么多的数据,如你说的,只返回了9个字节。即便你指定bytesToRead大小也没有用。
解决办法:只能通过控制代码来实现你想要的功能,我认为有两种方案可供使用:
一、设置一个大小为59的缓存,写一个while循环,只有从串口读满59个字节的数据时才退出while循环,否则继续读取。
二、思想跟第一种类似,只是不写while循环,利用调用函数思想,当存满59个字节时,返回true,否则返回false,继续读取串口数据。
希望对楼主有用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式