用serialPort触发的_DataReceived事件里 读进来数据必须要先进缓存区么

小学工 2017-07-24 11:24:24
比如 :
byte[] shuju = new byte[serialPort1.ReadBufferSize];
serialPort1.Read(shuju, 0, shuju.Length);

必须要先进缓存区 再读长度 再进行数据处理么

可不可以先把所有的数据接收过来不进缓存区直接处理
...全文
254 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilikeff8 2017-07-24
  • 打赏
  • 举报
回复
你并不能保证一次能接收所有数据,这是串口通讯的性质决定的,除非你的硬件波特率高,数据吞吐量大,而且能保证一次发完
  • 打赏
  • 举报
回复
如果你能保证一次全部接收收据的话
exception92 2017-07-24
  • 打赏
  • 举报
回复
不可以。
小学工 2017-07-24
  • 打赏
  • 举报
回复
引用 3 楼 ilikeff8 的回复:
你并不能保证一次能接收所有数据,这是串口通讯的性质决定的,除非你的硬件波特率高,数据吞吐量大,而且能保证一次发完
那这样会不会出现丢包的情况

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧