问题标签 [serial-port]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1663 浏览

winapi - 发送二进制到串口

将串行字符串字符发送到串行端口。我需要调用 WriteFile(handle, "A", strlen("A"), ...)

但是,如果我想指定并发送一个十六进制或二进制数怎么办?例如,我想发送 WriteFile(handle, 0x41, sizeOf(0x41), ...) ?

有没有允许我这样做的功能?

0 投票
5 回答
3832 浏览

winforms - 调试 .NET winform 时从 SerialPort 引起 ObjectDisposedException 的原因是什么?

Vista SP1 Visual Studio 2008 SP1 .NET 3.5 SP1 C#

我有一个我正在玩的 winforms 应用程序,它使用 SerialPort 对象作为私有变量。当应用程序被编译和执行时,它工作得很好。它也可以在没有任何断点的调试模式下运行。90% 的情况下,当我在断点处停止并尝试单步执行代码时,我会得到一个“出现未处理的异常”对话框,其中包含以下详细信息:

System.ObjectDisposedException 未处理 Message="Safe handle has been closed" Source="mscorlib" ObjectName="" StackTrace: at Microsoft.Win32.Win32Native.SetEvent(SafeWaitHandle handle) at System.Threading.EventWaitHandle.Set() at System。 IO.Ports.SerialStream.AsyncFSCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOverlapped) 在 System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) InnerException:

令人沮丧的是,我不必跳过与串行相关的代码!我只需要对端口做点什么。所以我可能会读取一个字符串,操作该字符串,将两个数字相加,无论如何,然后 BANG。

同样,在不调试时,或者在没有任何断点的情况下调试时,这工作得很好。似乎有一些关于在断点处停止的东西,这使得 CLR 在不同的线程上处理 SerialStream。

网上有很多关于更新 USB 设备导致此问题的讨论。但我使用的是 COM1 上的内置主板端口。

我认为我在 .NET 2.0 中没有这个问题,所以我可能不得不回到那个问题......

在发布代码之前,我需要稍微简化一下应用程序——但是之前有没有人在调试器中看到过这样的行为?

非常感谢!

0 投票
1 回答
2533 浏览

java - 如何向 javax.comm 添加“驱动程序”?Java中的串口编程

我正在尝试在我的 PC 上使用带有 javax.comm 类的 RS-232 串行端口。我是那个 API 的新手,所以首先我浏览了文档,我发现你应该做的第一件事是“列出”类 CommPortListener 中的所有端口并选择其中一个。

那工作得很好!问题是,现在,我的端口不见了。它列出了我的计算机上不存在的 /dev/ttyS0 和 /dev/ttyS1 端口。我的端口(我已经多次使用它们)是 /dev/ttySNX0 和 /dev/ttySNX1。

再次上网时,我发现我应该做一些事情,比如将我的卡的驱动程序“注册”或“加载”到 API 系统上,这些事情可以在以前的版本中完成,但现在不行。此外,我尝试在 Windows 下执行此操作,他们为我提供了 API 的“通用”版本,需要一些 RXTX 应用程序,这开始击败我。

我会感谢任何建议,文档链接......一些东西......允许我通过Java使用我的串行端口,这最终是我的目标......

谢谢各位!!!!

0 投票
8 回答
45913 浏览

windows - 如何在 Windows 中获取 COM 端口的友好名称?

我有一个通过 USB 连接的 GSM 调制解调器。调制解调器创建 2 个串行端口。第一个自动连接到调制解调器,第二个在设备管理器中显示为“HUAWEI Mobile Connect - 3G PC UI Interface (COM6)”

第二个端口用于从调制解调器获取重要信息,例如信号质量;发送和接收短信;以及许多其他功能。

我正在编写一个应用程序,它将包含第二个端口提供的一些功能。我需要的是一种确定哪个 COM 端口是备用端口的可靠方法。迭代端口并检查对“ATE0”的响应是不够的。调制解调器的端口通常是编号较低的端口,当拨号连接未激活时,它将与第二个端口一样响应“ATE0”。

我想做的是迭代端口并检查它们的友好名称,如设备管理器中所示。这样我就可以将我的应用程序中的端口链接到设备管理器中标有“HUAWEI Mobile Connect - 3G PC UI Interface (COM6)”的端口。我还没有找到任何可以让我以编程方式获取该名称的信息。

0 投票
2 回答
9597 浏览

c++ - COM 端口上的 Win32 重叠读取文件返回 ERROR_OPERATION_ABORTED

好的,一个适合蜂巢思维的人......

我的代码 - 直到今天 - 在许多系统上运行得很好,并且部署在许多站点上。它涉及线程从串行端口读取和写入数据。

尝试检查新设备时,我的代码在 ReadFile 之后调用 GetOverlappedResult 时出现 995 ERROR_OPERATION_ABORTED 错误。有时读取会起作用,有时我会收到此错误。只需忽略错误并重试即可 - 令人惊讶的是 - 不会丢失任何数据。不需要 ClearCommError。

这是片段。

我的第一个猜测是归咎于我之前没有使用过的 COM 端口驱动程序(它是 Blackmagic Decklink 上的 RS422 端口,仅供参考),但这感觉像是在逃避。

哦,还有 Vista SP1 Business 32 位,为我的罪过。

在我把它归结为“别人的问题”之前,有没有人知道可能导致这种情况的原因?

0 投票
2 回答
6842 浏览

c# - GSM 调制解调器库

我正在寻找用 c# 编写的 SMS 库,任何人都是最好的库并且它是免费的吗?我可以在 Linux 中找到超过 1 个,但我找不到任何用 c# 编写且免费的内容

0 投票
4 回答
41673 浏览

vb.net - 在 VB.net 中的代码中创建串行端口

我正在尝试仅使用代码在 VB.net 中创建一个串行端口。因为我正在创建一个类库,所以我不能使用内置组件。我已经尝试实例化一个新的 SeialPort() 对象,但这似乎还不够。我确信我缺少一些简单的东西,任何帮助将不胜感激!谢谢!

PS 我应该补充一点,我此时遇到的问题是获取代码来处理 datareceived 事件。除此之外,它可能正在工作,但由于这个问题我无法判断。

0 投票
4 回答
6126 浏览

.net - Windows/.NET 监控/调试串口的方式?

我有一个在 Windows XP Professional 上运行的 .NET 2.0 应用程序。此应用程序使用串行端口与一些自定义设备进行通信。

出于某种原因,我们的一些定制 PC 的串行端口存在问题,使用几周后它将停止运行。除了自动重启(在我的场景中不起作用)之外,是否有任何实用程序可以调试/诊断串行端口?是否有任何.NET 库可以帮助解决这个问题(我可以编写自己的实用程序来调试端口)?

另外,有没有人对以下库有任何经验: Sax CommStudio

0 投票
3 回答
80605 浏览

java - 用Java读取串口

我是Java的初学者。我正在通过串行端口从设备读取数据。我每分钟获取一次数据,但是在数据正确出现之后,第一次读数将达到一半。

我得到的输出是:

6050.003120815340006050.003120815350006050.0

正确的输出应该是这样的:

03120815340006050.003120815350006050.0


我的代码是:

0 投票
4 回答
21603 浏览

c# - 在 C# 中,我如何监听已经打开的 COM(串行)端口?

我正在使用一个与我的 COMM 端口对话的程序,但我已经制作了另一个程序,我想“嗅探”通信端口消息并对这些消息执行它自己的操作。这在 .NET c# 中可行吗?