Bonsoir
Je voudrais savoir comment je peux remettre a zero le buffer de port serie apres avoir lu le data (reset buffer) ?
Merci de m'aider.
Version imprimable
Bonsoir
Je voudrais savoir comment je peux remettre a zero le buffer de port serie apres avoir lu le data (reset buffer) ?
Merci de m'aider.
Bonjour,
Peux-tu nous montrer un peu de ton code, notamment où celui-ci pose problème ?
Edit : sinon j'ai vu ça sur msdn
Code:
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace SimpleSerial { public partial class Form1 : Form { // Add this variable string RxString; public Form1() { InitializeComponent(); } private void buttonStart_Click(object sender, EventArgs e) { serialPort1.PortName = "COM2"; serialPort1.BaudRate = 9600; label1.Text = "Control Temperature : OK"; serialPort1.Open(); if (serialPort1.IsOpen) { buttonStart.Enabled = false; buttonStop.Enabled = true; textBox1.ReadOnly = false; textBox2.ReadOnly = false; textBox3.ReadOnly = false; textBox4.ReadOnly = false; } } private void buttonStop_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { serialPort1.Close(); buttonStart.Enabled = true; buttonStop.Enabled = false; textBox1.ReadOnly = true; textBox2.ReadOnly = true; textBox3.ReadOnly = true; textBox4.ReadOnly = true; led1.Value = false; led2.Value = false; led3.Value = false; } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (serialPort1.IsOpen) serialPort1.Close(); } public void DiscardOutBuffer() { } private void DisplayText(object sender, EventArgs e) { textBox1.AppendText(RxString); long x = Convert.ToInt64(RxString); serialPort1.DiscardInBuffer(); thermometer1.Value = Convert.ToInt64(x); } private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { RxString = serialPort1.ReadExisting(); this.Invoke(new EventHandler(DisplayText)); } private void Form1_Load(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } } }
bonjour,
le pb quand j'envoie des string numerique de 1 a 500 par porte serie mon code convert juste la premiere string numerique puis il plante lorsqu'il recevois la deuxieme string