public partial class Form1 : Form { SerialPort serialport1 = new SerialPort();
public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { serialport1.PortName = "COM5"; serialport1.BaudRate = 9600; serialport1.Open(); byte[] data = Encoding.Unicode.GetBytes(textBox1.Text); string str = Convert.ToBase64String(data); serialport1.WriteLine(str); MessageBox.Show("數(shù)據(jù)發(fā)送成功!", "系統(tǒng)提示"); }
private void button2_Click(object sender, EventArgs e) { byte[] data = Convert.FromBase64String(serialport1.ReadLine()); textBox2.Text = Encoding.Unicode.GetString(data); serialport1.Close(); MessageBox.Show("數(shù)據(jù)接收成功!", "系統(tǒng)提示"); }
?
?
為什么button1發(fā)送之后,點擊button2沒有接受到數(shù)據(jù),程序直接就死那了,,求解~
9 回答

慕沐林林
TA貢獻(xiàn)2016條經(jīng)驗 獲得超9個贊
serialport1.Flush沒有是否有緩沖問題
另外點擊button2是在發(fā)送結(jié)束后,端口上的數(shù)據(jù)也有超時丟棄問題,如果已經(jīng)丟了,那么讀的時候就阻塞了,程序直接就死那

撒科打諢
TA貢獻(xiàn)1934條經(jīng)驗 獲得超2個贊
在?serialport1.WriteLine(str); 之后加上一行代碼試試:
serialport1.Flush();
?
?

GCT1015
TA貢獻(xiàn)1827條經(jīng)驗 獲得超4個贊
加的這句serialport1.BaseStream.Flush();不過還是不行,程序還是在接收數(shù)據(jù)的時候會直接死掉

寶慕林4294392
TA貢獻(xiàn)2021條經(jīng)驗 獲得超8個贊
- 9 回答
- 0 關(guān)注
- 346 瀏覽
添加回答
舉報
0/150
提交
取消