Tag: serial port

向RS232发送电压

我知道我们可以使用3号引脚将数据作为输出发送到RS232。 但我只是想知道还有另一种方法只能在短时间内将电压5v发送到RS232? 我只想让5v触发PIC微控制器来做某事。 先感谢您。

在C#中通过串口发送ctrl + C?

如何通过C#中的串口发送设备ctrl + c ?

与u-blox gps的C#串行通信

我有来自u-blox.com的带有USB连接和驱动程序的GPS。 当你插入USB时,驱动程序会安装一个弹出的虚拟COM端口。使用超级终端,我可以观察来自GPS的数据流。 然后我想要我的程序中的数据,不是那么容易… 我已经实现了一些使用serialPort类从GPS读取的方法,但是没有成功。 我之前在C#中编写了几个串口设备读取器和编写器,但这个让我停下来。 例如,除非拔下并重新插入USB,否则simpleSerial中的简单代码不会给你任何东西。 尝试用matlab阅读它,效果很好,但由于我的程序的其余部分需要GPS数据在c#中,这并不能解决问题。 在serialPort类中是否有一些我可以规避的高级C#事情? 或者是否有任何已知的问题,读取USB串行端口,我认为它像我的GPS?

获取连接到串行端口的设备名称

我搜索如何获取连接到串行端口的材料的设备名称。 我有两种不同类型的材料可以连接在上面。 第一个:打印机(只接收数据并且不发送任何内容)第二个:余额(仅发送数据并且不接收任何内容) 我如何区分这两种材料? 谢谢。

OpenSource .net短信息库

我一直在我的项目中使用GSM调制解调器来发送/接收 SMS-s。 我一直在使用.net的内置串口通信function来使用标准的AT命令。 现在我必须扩展其function(如PDU模式下的SMS,更有效的交付报告处理等)。 我不想重新发明轮子,所以首先我想知道是否有一个很好的开源项目或关于这个主题的免费图书馆。 它应该以文本和pdu模式发送/接收短信,处理发送报告。 我用谷歌搜索了它,但到目前为止我还没有找到一个有效的。 平台: Windows / .net4 / vs2010 / c#

在.Net 2.0中关闭SerialPort时出现ObjectDisposedException

我有一个C#windows窗体应用程序,它通过COM端口与USB加密狗通信。 我正在使用.Net 2.0中的SerialPort类进行通信,并且串行端口对象在应用程序的生命周期内是打开的。 应用程序向设备发送命令,还可以从设备接收未经请求的数据。 表单关闭时出现问题 – 在尝试关闭COM端口时,我(随机地,不幸地)得到了ObjectDisposedException。 这是Windows堆栈跟踪: System.ObjectDisposedException was unhandled Message=Safe handle has been closed Source=System ObjectName=”” StackTrace: at Microsoft.Win32.UnsafeNativeMethods.SetCommMask(SafeFileHandle hFile, Int32 dwEvtMask) at System.IO.Ports.SerialStream.Dispose(Boolean disposing) at System.IO.Ports.SerialStream.Finalize() InnerException: 我找到了有类似问题的人的post,并尝试了解决方法[这里] [1] [1]:http: //zachsaw.blogspot.com/2010/07/net-serialport-woes.html虽然这是针对IOException并且没有阻止问题。 我的Close()代码如下: public void Close() { try { Console.WriteLine(“******ComPort.Close – baseStream.Close*******”); baseStream.Close(); } catch (Exception ex) { Console.WriteLine(“******ComPort.Close baseStream.Close raised exception: ” […]

附加字符串时C#SerialPort DataReceived问题

我有一个DataReceived方法触发从RS232设备发送数据。 通过以下代码顺利运行 byte[] data = new Byte[serialPort.BytesToRead]; serialPort.Read(data, 0, data.Length); string read = System.Text.Encoding.ASCII.GetString(data); 但如果我在数据后添加一个字符串 string read = System.Text.Encoding.ASCII.GetString(data) + “asdf \n”; 仍然会收到数据,但偶尔会显示不正确的数据。 例如,如果我连接到秤并且应该读取“10.45kg asdf”,它将在我的计算机上显示为“10. asdf45kg”。 这里有什么问题?

不在C#应用程序中发送串行数据

我有两个Arduinos允许使用串行监视器通过串行端口进行消息交换。 如果我在双方使用串行监视器一切正常。 如果我使用我的C#应用​​程序没有任何反应。 我试图从串行监视器发送C#应用程序,它可以工作,但不是相反的。 // … comPort1.Open(); // … private void comPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { this.Invoke(new EventHandler(processData)); } private void processData(object sender, EventArgs e) { string inData = comPort1.ReadExisting(); msgBoxLog.AppendText(inData); } // … private void sendButton_Click(object sender, EventArgs e) { string my_str = “my string”; msgBoxLog.AppendText(msgBox.Text + my_str); comPort1.Write(msgBox.Text); } RtsEnable和DtrEnable都已启用

如何获得串口设备ID?

在这个程序中,我首先尝试连接到availablelbe端口。 找到并连接后,我想读取连接的USB设备ID和供应商ID,我该怎么做? 亲切的问候 Program() { // Get a list of serial port names. string[] ports = SerialPort.GetPortNames(); // Search for the right port. foreach (string port in ports) { _serialPort = new SerialPort(port, 250000, Parity.None, 8, StopBits.One); _serialPort.Handshake = Handshake.None; _serialPort.ReadTimeout = 300; _serialPort.WriteTimeout = 300; try { _serialPort.Open(); break; } catch (Exception e) { […]

C#:SerialPort.Open超时?

我有一个自动检测线程,它尝试按顺序打开端口并匹配接收到的数据,从而检测相关设备发送数据的端口。 现在,有一些端口,SerialPort.Open只挂起线程约30秒。 如何在SerialPort.Open函数上设置超时?