刚开始学习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的地方设错了?另外串口程序能在同一台机子上测试吗?老是用两台有点麻烦谢谢各位了 }
{
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的地方设错了?另外串口程序能在同一台机子上测试吗?老是用两台有点麻烦谢谢各位了 }
解决方案 »
- C#桌面应用程序能否将App.config放到exe里去?
- 用C#写了个俄罗斯方块,图像放在panel 中,在panel中绘制图,结果图像闪烁,急求解决
- .NET FRAMEWORK 3.0、3.5、4.0的WPF的区别
- 一个文本框获取焦点时,激发什么事件呀?
- VB.net程序运行正常,移植到C#上就出现问题了!求VB和C#都通的高手解答!!万分感激!!!
- 【求助】C#检索Access数据库时,总提示:语法错误(操作符丢失)
- 数据集合并表的问题????
- 注册用户时如何判断当前用户是否已经在数据库中存在?
- c#中调用外部EXE,如何知道该外部程序运行错误,并根据运行的结果 再执行其他功能
- 求一个能求四则运算表达式的函数
- 我想在datagridview的新加行下面再加个统计行,能实现吗?
- 如何把任意类型的文件添加到access数据库ole类型字段?另外还需要读取出来的代码,谢谢
我也想学学怎么用C#写