首页 新闻 会员 周边 捐助

C# 串口 函數不正確

0
[待解决问题]

我的一個串口接收數據的方法,今天從記錄的日誌中發現了提示函數不正確,怎麼解決?

(1)以下是記錄的日誌:

01:19:18: 讀取繼電器串口數據方法異常:函数不正确。

 

(2)以下是代碼

/// <summary>
/// 接收繼電器串口數據的方法
/// </summary>
private string ReceiveDataFromJiDianQi()
{
string value = "";
try
{
if (_spJiDianQi.IsOpen)
{

Thread.Sleep(40); //為了接收數據的完整性
byte[] receivedData = new byte[_spJiDianQi.BytesToRead]; //创建接收字节数组
if (receivedData.Length > 0)
{
_spJiDianQi.Read(receivedData, 0, receivedData.Length); //读取数据
_spJiDianQi.DiscardInBuffer();
_spJiDianQi.DiscardOutBuffer();

for (int i = 0; i < receivedData.Length; i++)
{
value += receivedData[i].ToString("X2"); //16进制显示
}
}
else
{
WriteLog("讀取繼電器串口數據時,沒有數據返回。");
}
}
else
{
WriteLog("繼電器串口打開失敗!");
}
}
catch (Exception ex)
{
WriteLog("讀取繼電器串口數據方法異常:" + ex.Message.ToString());
}
return value;
}

青鋒的主页 青鋒 | 初学一级 | 园豆:5
提问于:2017-03-24 09:02
< >
分享
所有回答(1)
0

 嗯,思路不对。

一直读放到缓冲区即可,不需要Thread睡眠。

友情提示:放点豆

花飘水流兮 | 园豆:13615 (专家六级) | 2017-03-24 11:03

 你好!非常感谢你能百忙之中能回复,还有你的提示!另外,我想问下:如何一直读放到缓冲区即可,不需要Thread睡眠?

支持(0) 反对(0) 青鋒 | 园豆:5 (初学一级) | 2017-04-17 11:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册