小编Cal*_*ain的帖子

C#.NET串行端口连接,无法读取或写入

我正在将C#和.NET 4.5与Visual Studio 2012编译器/ IDE一起使用,以打开串行端口并与之交互。我的代码旨在连接到US Digital的QSB正交至USB转换器。

这是我用来打开端口并连接的代码。

this.Port = new SerialPort();

this.Port.BaudRate = 230400;
this.Port.PortName = "COM9";
this.Port.Parity = Parity.None;
this.Port.Handshake = Handshake.None;
this.Port.DataBits = 8;
this.Port.StopBits = StopBits.One;

this.Port.Open();
Run Code Online (Sandbox Code Playgroud)

在this.Port.Open()之后立即设置断点,使我可以验证串行端口是否确实已连接。在另一部分代码中,响应于按钮按下而调用以下内容:

this.Port.WriteLine("W168");
Run Code Online (Sandbox Code Playgroud)

该命令*应该使我的硬件旋转电动机,实际上,如果我使用Putty或使用我编写的Python脚本(两者使用与C#代码完全相同的设置)发送该命令,则它确实会旋转。然而什么也没发生。我可以在Putty或Python中打开端口,并以预期的结果执行命令,然后运行C#代码,但没有任何反应。

我是否缺少某些特定于C#的东西来阻止其工作?

对于它的价值,这是我可以使用的Python代码:

ser = serial.Serial("COM9", 230400, timeout=1)
ser.write(b"W168\n")
Run Code Online (Sandbox Code Playgroud)

链接到pySerial文档:http ://pyserial.sourceforge.net/pyserial_api.html#classes

C#代码中提及但上述python调用中未提及的字段的默认值为:

  • 字节大小= 8
  • 奇偶校验=无
  • 停止位= 1
  • xonxoff =假
  • rtscts =假
  • dsrdtr =假

.net c# python serial-port

2
推荐指数
1
解决办法
1237
查看次数

标签 统计

.net ×1

c# ×1

python ×1

serial-port ×1