首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过RS485接收C#命令

通过RS485接收C#命令
EN

Stack Overflow用户
提问于 2013-05-24 21:20:23
回答 1查看 7.9K关注 0票数 0

我一直在谷歌上搜索,没有找到任何代码来帮助我,也许我漏掉了什么?我想接收RS485命令。现在我只是在收垃圾。下面是我当前的代码,尽管我认为它不会有帮助:

代码语言:javascript
复制
//C# CODE
byte[] arr = new byte[serialPort1.BytesToRead];
serialPort1.Read(arr, 0, serialPort1.BytesToRead);
String s = "";
foreach (byte b in arr)
{
     s += b.ToString() + " ";
}
/*String s = serialPort1.ReadByte().ToString();
while (serialPort1.BytesToRead > 0)
{
     s += " " + serialPort1.ReadByte().ToString();
     Thread.Sleep(10);
}*/
//String s = serialPort1.ReadLine().ToString();
richTextBox1.Invoke((MethodInvoker)delegate { richTextBox1.AppendText(s + "\n"); });

这只是一个测试,看我是否能接收到数据。有人知道我如何通过串口接收数据并在文本框中显示这些数据吗?

EN

回答 1

Stack Overflow用户

发布于 2013-05-25 04:52:37

我不确定您的最终目标,但是如果您只希望接收数据并将其显示在文本框中,那么与标准的RS232串行通信没有任何区别,这应该可以做到。此示例中文本框的名称为txtOutput。

首先:

代码语言:javascript
复制
  public Form1()
    {
        InitializeComponent();

        serialPort1.PortName=("COM1");
        serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPort1_DataReceived);
        serialPort1.Open();
    }

串行口

代码语言:javascript
复制
  private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {

            try
            {
                SetText(serialPort1.ReadLine());

            }

            catch (Exception ex)
            {
                SetText(ex.ToString());
            }

        }

代表:

代码语言:javascript
复制
delegate void SetTextCallback(string text);

附于文本框:

代码语言:javascript
复制
 private void SetText(string text)
        {
            if (this.txtOutput.InvokeRequired)
            {
             SetTextCallback d = new SetTextCallback(SetText);
             this.BeginInvoke(d, new object[] { text });
            }
            else
            {
                txtOutput.AppendText(text + "\r\n");
            }}

请记住使用bauds设置串行port1,并确保已将串行端口添加到表单中。我已经用标准的串行连接测试了代码,它正在工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16743815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档