C#串口通信接受问题

深呼吸啦 2014-03-10 06:19:24
我自己写的C#串口通信,基于winform的
我拿usb转232的串口短接TXD和RXD可以完美通信;
但是我拿下位机向电脑发数据,数据接收框里就不显示;
然后我又用串口短接TXD和RXD发了数据,结果数据接受框里面的出现了直接下位机发送的数据和我刚刚发的数据,求解不明白为什么


private void ComPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
try
{
serialPort1.ReceivedBytesThreshold = serialPort1.ReadBufferSize;
string strRecv = serialPort1.ReadLine();
// 处理接收到的数据
char[] temp = strRecv.ToArray();
if (temp[0] == '\n' || temp[0] == '\r')
{
textBox1.AppendText("\n");
}
textBox1.AppendText(strRecv);


}
catch (Exception err)
{
serialPort1.Close();
MessageBox.Show(err.Message);
}
finally
{
serialPort1.ReceivedBytesThreshold = 1;
}
}
...全文
120 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
深呼吸啦 2014-03-10
  • 打赏
  • 举报
回复
引用 3 楼 BenBenBears 的回复:
加断点,确定是不是触发了接收事件。
OK已经解决.换一个函数就可以了
深呼吸啦 2014-03-10
  • 打赏
  • 举报
回复
引用 3 楼 BenBenBears 的回复:
加断点,确定是不是触发了接收事件。
string strRecv = serialPort1.ReadLine();这句出错了 说什么由于线程退出或应用程序请求已终止IO操作
BenBenBears 2014-03-10
  • 打赏
  • 举报
回复
加断点,确定是不是触发了接收事件。
深呼吸啦 2014-03-10
  • 打赏
  • 举报
回复
引用 1 楼 BenBenBears 的回复:
检查端口和下位机波特率是否正确。
波特率正确的,其他软件助手可以收到呢
BenBenBears 2014-03-10
  • 打赏
  • 举报
回复
检查端口和下位机波特率是否正确。

110,533

社区成员

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

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

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