Serielle Schnittstelle Visual Studio C#

Gast #4374197
Lesenswert?

Hallo,

ich bin Anfänger und möchte Daten empfangen und diese im Textbox 
ausgeben lassen. Ich habe da was geschrieben und es funktioniert nicht 
ganz.
Kann mir da jemand sagen wo men Fehler liegt?

private void serialPort1_DataReceived(object sender, 
System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            int count = serialPort1.BytesToRead;
            byte[] ByteArray = new byte[count];
            serialPort1.Read(ByteArray, 0, count);

            string data = 
System.Text.ASCIIEncoding.Default.GetString(ByteArray, 0, 5);

            float f = float.Parse(data);

            txtBox1.Text = f.ToString();


        }

        private void button2_Click(object sender, EventArgs e)
        {
            serialPort1.Close();
            this.Close();

        }
Gast #4374203
Lesenswert?

DingDong schrieb:
> float f = float.Parse(data);
>
>txtBox1.Text = f.ToString();


irgend wie kannst du dir das Sparen.  Erst ein einen float verwandeln 
und dann wieder in einen String.


BTT: Gibts nen Compiler Fehler? Ist die Baudrate richtig eingestellt? 
Kommen die Daten überhaupt an? Hast du den Port überhaupt aufgemacht?

Deine Informationslage ist ziemlich dünn.
Gast #4374217
Lesenswert?

Hallo,

also so sieht mein Code aus:

 private void Form1_Load(object sender, EventArgs e)
        {

            SerialPort port = new SerialPort("COM6", 1200, Parity.None, 
8, StopBits.One);     //Initialisierung

            if (!port.IsOpen)
            {
                port.Open();
                txtBox.Text = "open";
            }


            else
            {
                txtBox.Text = "Not Open";
            }

                                                                                  //SerialPort 
öffnen





        }

        private void serialPort1_DataReceived(object sender, 
System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            int count = serialPort1.BytesToRead;
            byte[] ByteArray = new byte[count];
            serialPort1.Read(ByteArray, 0, count);

            string data = 
System.Text.ASCIIEncoding.Default.GetString(ByteArray, 0, 10);

            float f = float.Parse(data);

            txtBox1.Text = f.ToString();


        }

        private void button2_Click(object sender, EventArgs e)
        {
            serialPort1.Close();
            this.Close();

        }
    }
}

nicht"Gast" schrieb:
> BTT: Gibts nen Compiler Fehler? Ist die Baudrate richtig eingestellt?
Nein es wir kein Fehler angezeigt
> Kommen die Daten überhaupt an? Hast du den Port überhaupt aufgemacht?
Nein es kommen kein Fehler an
Gast #4374266
Lesenswert?

Schnittschnelle schrieb:
> Und warum verwendest Du in der ersten Hälfte des sogenannten
> Programms
> "port" und in der zweiten "serialport1"?

ich habe port auf serialport1 unbenannt?

Robert C. schrieb:
> Kommen überhaupt Daten im DataReceived an?
> Setze mal ReceivedBytesThreshold auf 1.

  SerialPort serialPort1 = new SerialPort("COM6", 1200, Parity.None, 8, 
StopBits.One);     //Initialisierung

 serialPort1.ReceivedBytesThreshold = 1;

immer noch tut sich nichts

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren