2 leetbai leetbai 于 2017.09.01 06:57 提问

windows10系统中c#调用system.io.port SerialPort类不能通讯 1C

在Windows10系统中使用系统自带的控件SerialPort,通过串口发送数据,但仪器好像接收不到,没有返回数据.使用串口调试工具发送相同的字节,则仪器可以接收到并返回数据.
波特率及相关设置都一样,均为4800,N,8,1
但在windows7下相同的程序没有问题,仪器可以返回数据.
这是发送数据的代码如下:
serialPort1.BaudRate = 4800;
serialPort1.DataBits = 8;
serialPort1.StopBits = System.IO.Ports.StopBits.One;
serialPort1.Parity = System.IO.Ports.Parity.None;
serialPort1.Open();

byte[] tbyte= new byte[] { 0xAA ,00 ,0x31 ,00 ,00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 ,00,0xDB };
serialPort1.Write(tbyte, 0, tbyte.Length);

请各位大侠,帮助解决!
多谢!

2个回答

gongjingshun
gongjingshun   2017.09.01 08:56

硬件最好用PCI串口卡,USB转串口的不是很好用.定义delegate发送,接收

zbbfb2001
zbbfb2001   2017.09.01 10:35

初始化串口的时候怎么不设置超时?
根据我一些项目的经验,不设置超时应该是不可以的。
PortName = portName,
BaudRate = 38400,
DataBits = 8,
Parity = Parity.None,
StopBits = StopBits.One,
Handshake = Handshake.None,

**            ReadTimeout = 1000,**

** WriteTimeout = 1000**

Csdn user default icon
上传中...
上传图片
插入图片