串口问题,帮帮忙啊!
刚开始接触串口,用串口助手发现数据可以发到虚拟的串口上了,但自己写的读取的,只要一读就挂了。写:
private void button1_Click(object sender, EventArgs e)
{
SerialPort SerialPort1 = new SerialPort();
SerialPort1.PortName = "COM1";
//SerialPort1.BaudRate = 9600;
//SerialPort1.DataBits = 8;
//SerialPort1.Parity = Parity.None;
//SerialPort1.StopBits = StopBits.One;
SerialPort1.ReadTimeout = 1000;
SerialPort1.Open();
byte[] date = Encoding.Unicode.GetBytes(textBox1.Text);
string str = Convert.ToBase64String(date);
SerialPort1.WriteLine(str);
MessageBox.Show("数据发送成功");
SerialPort1.Close();
}
读://如果在串口助手就能看到已经读出来了,但如果关掉串口助手通过这个按钮就会出问题!
private void button2_Click(object sender, EventArgs e)
{
SerialPort SerialPort1 = new SerialPort();
SerialPort1.PortName = "COM2";//虚拟的串口, SerialPort1.ReadTimeout = 1000;
SerialPort1.Open();
if (SerialPort1.ReadLine() != "")//读到这一行就挂了,说操作已经超时了
{
byte[] date = Convert.FromBase64String(SerialPort1.ReadLine());
textBox2.Text = Encoding.Unicode.GetString(date, 0, date.Length);
}
SerialPort1.Close();
MessageBox.Show("数据接收成功");
}
高手们帮帮忙啊!到底要怎么写啊!
--------------------编程问答-------------------- SerialPort1.Open();
看这个是否返回成功。你写代码的风格不好,这么重要的一个调用都不带判断是否成功的。 --------------------编程问答-------------------- 串口参数也没设置 就打开了,默认的设置估计是不行的.
最好自己加上 如 波特率 RTS 等设置.
补充:.NET技术 , C#