c# 串口读没有接收到数据的接收数据缓冲区如何捕捉异常?

现在用如图方法捕捉不到异常,代码不走catch。... 现在用如图方法捕捉不到异常,代码不走catch。 展开
 我来答
freeeeeewind
2017-01-06 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1302万
展开全部

通过设置ReadTimeout属性解决你的问题。代码如下

SerialPort com = new SerialPort("COM1");

// 设置读取超时为5秒(5000毫秒)
com.ReadTimeout = 5000;
try
{
    com.Read(receiveData, 0, readStatus[5]*2+5);
}
catch(TimeoutException)
{
    //超时无数据异常处理
}
追问
为什么我读出来的数据只有第一位为有效位,比如我给串口发送01 01 01 01,它接收到的是01 00 00 00,等到下一次读取就变成01 01 01 00,是串口哪里需要设置吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式