andy11 - Fr 21.05.10 21:09
Titel: Serielle Schnittstelle: Nicht alle Daten kommen an!
ich habe mir HERCULES runtergeladen und habe mal die Daten, die ich vom STK500, über die ein ATMEGA16 Daten zurückschickt, bekomme ausgelesen.
Dann habe ich gestoppt und mit meinem Programm ausgelesen.
Siehe da: Es kommen genau die Hälfte der Daten an. Dh: ein Wert wird immer ausgelassen, aber wieso`?
Es kann einmal nicht and der Hardware liegen und alle EInstellungen vom HERCULES stimmen mit meinem Programm überein.
Irgend eine Idee was da der Hund sein kann?
lg andy
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading;
namespace SerielleSchnitschtelle { public partial class Form1 : Form { public Form1() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; }
private void cmdclose_Click(object sender, EventArgs e) { Close(); }
private void cmdReceive_Click(object sender, EventArgs e) { serialPort1.BaudRate = Convert.ToInt16(cBBaud.Text); serialPort1.PortName = cBSchnitt.Text; Schluss = false; backgroundWorker1.RunWorkerAsync(); } bool Schluss = false; private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { do { serialPort1.Open(); rtxtReceive.Text += serialPort1.ReadLine() + "\n"; serialPort1.Close(); } while (Schluss != true); }
private void cmdStop_Click(object sender, EventArgs e) { Schluss = true; backgroundWorker1.CancelAsync(); }
private void cmdClear_Click(object sender, EventArgs e) { rtxtReceive.Text = null; }
} } |