我用VS2005 写WINFORM
用System.IO.Ports;
SerialPort _comPort = new SerialPort();来发串口数据
打开串口代码如下:
//设置串口参数
_comPort.BaudRate = 9600;
_comPort.DataBits = 8;
_comPort.StopBits = System.IO.Ports.StopBits.One;
_comPort.Parity = System.IO.Ports.Parity.None;
_comPort.PortName = "COM1";
_comPort.RtsEnable = true;
try
{
_comPort.Open();
}
catch (ArgumentException ex)
{
MessageBox.Show(ex.ToString());
}
-----------------
执行到
_comPort.Open();异常:
System.ArgumentException:给定的端口名称未以 COM/com 开头或未解析为有效的串行端口.
看这错误好象是说我的_comPort.PortName 值不是用COM开头定义而出错.
代码不变,我拿去其他电脑A(WIN XP SP3,系统和我电脑一样,同一张碟所装)上测试,可以打开COM1,无错.
代码我换成COM2,在本机可以成功打开,无错
-----------
但是拿去客户的服务器上却和我电脑一样报同样的错!所以必须解决.
客户电脑是WIN SERVER 2003 系统
我的是XP SP3,我测试的电脑A系统和我的一样,并且是同一张碟装的,机子配置也是一样!这个错误在网上根本搜不到,请教如何解决?谢谢
用System.IO.Ports;
SerialPort _comPort = new SerialPort();来发串口数据
打开串口代码如下:
//设置串口参数
_comPort.BaudRate = 9600;
_comPort.DataBits = 8;
_comPort.StopBits = System.IO.Ports.StopBits.One;
_comPort.Parity = System.IO.Ports.Parity.None;
_comPort.PortName = "COM1";
_comPort.RtsEnable = true;
try
{
_comPort.Open();
}
catch (ArgumentException ex)
{
MessageBox.Show(ex.ToString());
}
-----------------
执行到
_comPort.Open();异常:
System.ArgumentException:给定的端口名称未以 COM/com 开头或未解析为有效的串行端口.
看这错误好象是说我的_comPort.PortName 值不是用COM开头定义而出错.
代码不变,我拿去其他电脑A(WIN XP SP3,系统和我电脑一样,同一张碟所装)上测试,可以打开COM1,无错.
代码我换成COM2,在本机可以成功打开,无错
-----------
但是拿去客户的服务器上却和我电脑一样报同样的错!所以必须解决.
客户电脑是WIN SERVER 2003 系统
我的是XP SP3,我测试的电脑A系统和我的一样,并且是同一张碟装的,机子配置也是一样!这个错误在网上根本搜不到,请教如何解决?谢谢
我知道我自身机子问题,所以现在问一下有什么办法可以解决吗?
经过测试,在另外两台电脑上可以正常打开串口....
如果实在不行我下午得重新还原系统看看了
2、如果有COM1,下载一个串口调试工具,查看其状态,如果占用着,可以直接将其释放。
3、上面的代码是有问题的,在调用_comPort.Open()之前,需要先查看其开启状态,如果被占用,调用close()方法将其关闭:
if(_comPort.IsOpen)
{
_comPort.Close();
}