C#串口接收的信息从中间断开

我就是蘑菇 2013-09-13 09:19:46
一台电脑上用串口助手循环发送“http://www.cmsoft.cn”
然后接收的线程里是这样写的
byte[] readdata = new byte[20];
sp.Read(readdata, 0, 20);
Received_Msg = Encoding.ASCII.GetString(readdata);

基本上收到的是
h
ttp://www.cmsoft.cnh
ttp://www.cmsoft.cnh
...
在最后一行处断点 看到局部变量
readdata 确实104 0 0 0 0 ....
伸手求解释
...全文
378 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovetsfuer 2013-09-13
  • 打赏
  • 举报
回复
你是做研究?还是实际的项目?如果实际项目,你可看坛子里有个串口调试V3.0的例子有源代码,看看人家怎么处理的。
feiniao19830822 2013-09-13
  • 打赏
  • 举报
回复
建议用DataReceived事件。
我就是蘑菇 2013-09-13
  • 打赏
  • 举报
回复
这样的话就
h
ttp://www.cmsoft.cnht
tp://www.cmsoft.cnhtt
...
这样子
这可能和串口助手的write方法有关 具体我就说不清了
还有直接用readexisting
能收到“http://www.cmsoft.cnhttp://www.cmsoft.cn”
申江渔夫 2013-09-13
  • 打赏
  • 举报
回复
改成byte[] readdata = new byte[21];
我就是蘑菇 2013-09-13
  • 打赏
  • 举报
回复
后来判断很可能不是程序的问题

lz机器上的com1坏掉了 用的是U口转串的
因为发现有时连上后确实是收不到数据的
重新插拔过后 程序看起来是好用的

readdata里的0是初始值
至于循环的数据为何会如此被分断 果然难想通

110,539

社区成员

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

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

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