初学遇到的串口读写问题!
刚开始学习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的地方设错了?另外串口程序能在同一台机子上测试吗?老是用两台有点麻烦
谢谢各位了
}