初学遇到的串口读写问题!
刚开始学习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的地方设错了?另外串口程序能在同一台机子上测试吗?老是用两台有点麻烦
谢谢各位了
}
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的地方设错了?另外串口程序能在同一台机子上测试吗?老是用两台有点麻烦
谢谢各位了
}
...全文
相关推荐
WIN32 API串口通讯实例教程
现在网上一大堆同个例子的,然而下载后不能打开,也就是说,摆上去的是个没用的,这个是能用的,没有源码!是个网页,一个博主的日志来的
VC串口通信
本文讲述了利用VC中的串口通信控件,进行GPS信号接收的编程原理及算法。
用多线程实现串口读写数据以及文件的读写
适合的读者:初学用多线程实现对串口的异步操作,对线程的理解,以及对串口的读写。还有文件的读写都有最基本的使用方式。调试时,可以用串口调试助手一起结合的去学习~
Qt windows下串口读写
Qt在windows下的串口读写操作的demo工程,适合初学者快速实现功能。
C# wince下串口读写程序适合初学者
C# wince下实现串口读写程序 可以读取gps数据,



