初学遇到的串口读写问题!

rzsp8552 2008-04-02 08:33:57
刚开始学习C#,最近要用蓝牙连接PC,需要用到虚拟串口,想用SerialPort这个类实现,但是当调用SerialPort.readline的时候程序就死,readexisting读出的是空,应该是writeline有问题,数据没有发送出去。

public SerialPort port = new System.IO.Ports.SerialPort("COM6");
{
InitializeComponent();

}
private void Form1_Load(object sender, EventArgs e)
{//对串口进行设置

port.PortName = SerialPort.GetPortNames()[0];//第一个可用端口
port.Parity = Parity.None;
port.Handshake = Handshake.None;
port.BaudRate = 9600;
port.DataBits = 8;
port.ReadTimeout = 50;
port.WriteTimeout = 50;
}



private void button1_Click(object sender, EventArgs e)
{
try
{
port.Open();
label1.Text = port.PortName+ "打开成功";

}
catch
{

label1.Text = port.PortName.ToString() + "打开失败";
}

}
private void button2_Click(object sender, EventArgs e)
{
try
{

// read.Join();
port.Close();
label1.Text = port.PortName.ToString() + "关闭成功";
}
catch
{

label1.Text = port.PortName.ToString() + "关闭失败";
}
}



private void read_Click(object sender, EventArgs e)
{
string data;
try
{
data = port.ReadLine();
MessageBox.Show(data);
}
catch
{
MessageBox.Show("failed");
}
}
//写数据
private void button1_Click_1(object sender, EventArgs e)
{
string message = "test";
port1.Write(message);
}

一个最简单的程序,端口打开成功,就是数据传的时候失败。程序放在两台PC上,蓝牙连接的时候显示所使用的COM不一样:一个是COM4,一个是COM6。相应的,在程序里我把PortName改过之后再生成新的程序,但是读写依然错误。是不是PortName的地方设错了?另外串口程序能在同一台机子上测试吗?老是用两台有点麻烦

谢谢各位了

}
...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rzsp8552 2008-04-03
  • 打赏
  • 举报
回复
用串口调试器可以正常运行,用writeline发送出去的格式是什么呢
UN_Solomon 2008-04-02
  • 打赏
  • 举报
回复
我用的是VB6里的控件
我也想学学怎么用C#写
yourname386 2008-04-02
  • 打赏
  • 举报
回复
先用串口调试器调试一下,看串口能不能正常工作

还有要注意在发送的字符的格式是否与设备的格式一致

在一台机子上测试比较麻烦,如果有两台机是最好

110,561

社区成员

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

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

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