串口问题,帮帮忙啊!

czy001319 2012-06-07 07:12:36
刚开始接触串口,用串口助手发现数据可以发到虚拟的串口上了,但自己写的读取的,只要一读就挂了。
写:
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("数据接收成功");
}

高手们帮帮忙啊!到底要怎么写啊!

...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
只在此山中 2012-06-08
  • 打赏
  • 举报
回复
串口参数也没设置 就打开了,默认的设置估计是不行的.
最好自己加上 如 波特率 RTS 等设置.
hard9999 2012-06-07
  • 打赏
  • 举报
回复
SerialPort1.Open();
看这个是否返回成功。你写代码的风格不好,这么重要的一个调用都不带判断是否成功的。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧