C#,通过串口获取错误的值 [英] C#, getting wrong value via serial port

查看:116
本文介绍了C#,通过串口获取错误的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要做的是,通过按下它上面的按钮从我的mk获取字符串数据,但是我的c#程序,它的一些随机数字(图片已附加)。

http://imgur.com/a/79Pbm



什么我试过了:



例如我想收到5,但我收到650683而不是它。在mk方面一切正常,我用模拟器检查它,所以问题在于c#代码。再次感谢。

What im trying to do, is get string data from my mk by pushing a button on it, but what im gettin on my c# program, its some random numbers(picture is attached).
http://imgur.com/a/79Pbm

What I have tried:

For example i want to receive "5", but i receive "650683" instead of it. On the mk side everything is working, i checked it with Emulator, so the problem is on c# code. Thanks in further.

using System;    
using System.Collections.Generic;    
using System.ComponentModel;    
using System.Data;    
using System.Drawing;    
using System.Linq;     
using System.Text;    
using System.Threading.Tasks;     
using System.Windows.Forms;    
using System.IO.Ports;    

namespace WindowsFormsApplication8 
{
    public partial class Form1 : Form
    {
         public Form1()
         {
              InitializeComponent();
          }

         private void button1_Click(object sender, EventArgs e)   // Here i send a byte to MK
         {
             var dataByte = new byte[] { 0x00 };
             serialPort1.Write(dataByte, 0, 1);
         }

         private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)  // choosing a right com port
        {
            serialPort1.PortName = textBox1.Text;
            serialPort1.BaudRate = Convert.ToInt32(textBox2.Text);

        }
        int rs;
        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) // Data Receive Handler
        {
            try
            {
                rs = serialPort1.ReadByte();
                this.Invoke(new EventHandler(type));
            }
            catch (System.TimeoutException) { }
        }
        void type(object s,EventArgs e)              // receive data
        {
            textBox4.Text += rs.ToString(); 
        }

        private void button3_Click(object sender, EventArgs e)   // OPen port
        {
            serialPort1.Open();
        }

        private void button4_Click(object sender, EventArgs e)  // Close port
        {
            serialPort1.Close();
        }
    }
}

推荐答案

你可以查看

机器控制器 [ ^ ]

它是关于VB中的串行和并行端口,但可以通过C#用作DLL或甚至转换为C#
you could have a look on
Machine Controller[^]
It is about serial and Parallel Port in VB but could uses as DLL via C# or even converted to C#


这篇关于C#,通过串口获取错误的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆