问题标签 [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 回答
16410 浏览

python - 以编程方式与 OS X 或 Linux 中的串行端口通信

我有一个 Prolite LED 标志,我喜欢设置它来显示来自 apache 日志和其他有趣统计数据的滚动搜索查询。问题是,我的 G5 没有串口,所以我必须使用 USB 转串口加密狗。它显示为 /dev/cu.usbserial 和 /dev/tty.usbserial 。

当我这样做时,一切似乎都是笨拙的:

当我使用串口工具与之交谈时,一切也都有效。

如果我在上面提到的串口工具的同时运行这段代码,那么一切都可以。但是,一旦我断开该工具,连接就会丢失。

所以问题是,我需要执行什么魔法才能在没有串口工具的情况下开始与串口通信?这是权限问题吗?另外,/dev/cu.usbserial 和 /dev/tty.usbserial 有什么区别?


不,没有序列号。问题是,即使使用 sudo 运行 python 脚本,问题仍然存在,并且如果我在我提到的 gui 工具中打开连接,唯一可以让它通过的事情。

0 投票
3 回答
5278 浏览

linux - `/dev/ttyS0` 和 `/dev/ttys0` 之间的区别?

/dev/ttyS0在 Linux 中,和 和有什么区别/dev/ttys0

我知道第一个是串行端口,但是第二个s呢?

0 投票
3 回答
74767 浏览

vb.net - 如何确定哪个进程正在使用串行端口?

我工作的公司制造通过串行端口与计算机通信的硬件。第三方公司编写与我们的硬件通信的软件。

有时我需要诊断我们的硬件。但是,当 Windows 启动时,第三方软件应用程序会连接到串行端口,从而阻止任何其他连接。我不知道这个应用程序/服务的名称,而且它并不总是同一个。

有没有办法:

  • 查找当前正在使用给定串行端口的应用程序/服务的名称/pid 或
  • 从另一个应用程序窃取串行端口连接。

最好是 vb.net,但我也会采用与语言无关的答案。

0 投票
2 回答
352 浏览

compact-framework - 通过串行端口传输数据

我正在使用 Compact Framework 中的 SerialPort 类,但我无法接收超过 2047 个字节。我可以接收的字节数是否存在任何限制?或如何设置对象?我正在尝试使用 WriteBufferSize 和 ReadBufferSize 属性,但它们不起作用。

0 投票
9 回答
212625 浏览

linux - Linux 的虚拟串行端口

我需要在 Linux 上测试一个串口应用程序,但是,我的测试机只有一个串口。

有没有办法将虚拟串行端口添加到 Linux 并通过 shell 或脚本模拟设备来测试我的应用程序?

注意:我无法重新映射端口,它在 ttys2 上硬编码,我需要在编写应用程序时对其进行测试。

0 投票
1 回答
2324 浏览

serial-port - 如何创建虚拟 COM 端口

我正在尝试实现一个软件Null Modem

有什么建议如何创建虚拟 COM 端口?

寻找技巧、策略、已知技术等。

0 投票
3 回答
2808 浏览

linux - 让两个 Linux(虚拟)机器通过串行端口进行通信

设置一个 Linux 机器在其串行端口上侦听传入连接的最佳方法是什么?我已经做了很多谷歌搜索,但我找不到正确的命令组合来真正让他们说话!

我的主要目标是为运行的 kvm/qemu VM 实例提供串行接口。他们目前只有一个 VNC 接口(他们在无头服务器上,没有 X)。我可以通过使用 -serial file: 标志启动 VM 来创建串行设备,但如何与它对话则是另一个问题。两个盒子都运行 Ubuntu 8.04。

0 投票
4 回答
3912 浏览

.net - 什么会影响 Serialport.Read() 返回的值

我使用 .Net Framework 2.0 Serialport 类在 C# 2.0 中编写了一个简单的应用程序,以通过 COM1 与控制器卡进行通信。

最近发生了一个问题,Read 方法返回的字节不正确。它返回了正确数量的字节,只有值不正确。不过,用 Delphi 编写的类似应用程序仍然返回正确的值。

我使用Portmon记录两个应用程序的串行端口上的活动,比较了两个日志,并在其中一些(显然)较小的不同设置,我试图尽可能地模仿 Delphi 应用程序,但无济于事。

那么,什么会影响 Read 方法返回的字节值呢?

两个应用程序之间的大多数设置是相同的。

以下是 Portmon 日志中不同的行的列表:

德尔福应用程序:

IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:dc ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:0 Replace:0 XonLimit:256 XoffLimit:256 IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:-1 RM:100 RC:1000 WM :100 WC:1000 IOCTL_SERIAL_SET_WAIT_MASK Serial0 成功掩码:RXCHAR RXFLAG TXEMPTY CTS DSR RLSD BRK ERR RING RX80FULL

C# 应用程序:

IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:1a ERR:0 BRK:0 EVT:1a XON:11 XOFF:13 IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:0 Replace:0 XonLimit:1024 XoffLimit:1024 IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:-1 RM:-1 RC:1000 WM:0 WC:1000 IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS 掩码:RXCHAR RXFLAG CTS DSR RLSD BRK ERR RING

更新:

正确返回的字节为:91、1、1、3、48、48、50、69、66、51、70、55、52、93(14 个字节)。最后一个值是一个简单的校验和。

返回的错误值为:91、241、254、252、242、146、42、201、51、70、55、52、93(13 个字节)。

如您所见,返回的第一个和最后五个字节是对应的。

ErrorReceived 事件表明发生了帧错误,这可以解释不正确的值。但问题是为什么 SerialPort 会遇到框架错误,而 Delphi 应用程序显然没有?

0 投票
2 回答
1134 浏览

windows - 如何以编程方式将 COM51 等名称关联到 Microsoft Windows 中的物理串行端口?

如何以编程方式将 COM51 等名称关联到 Microsoft Windows 中的物理串行端口?

要手动执行操作,我可以按照
链接文本中描述的步骤进行操作

使用 devmgmt.msc 打开设备管理器

双击端口(COM 和 LPT)。

右键单击我想要的端口,然后单击“属性”。

在端口设置选项卡上,如果我想更改 COM 端口号(例如,从 COM1 到 COM51),我单击高级按钮,然后从列表中选择我需要的 COM 端口号。

但是,我怎样才能用程序来完成这项工作呢?是否有 API 来完成这项工作?谢谢你。

0 投票
5 回答
1628 浏览

serial-port - 强大且易于实现的串行总线(汽车应用)

如果您的主要选择标准是:您将在汽车嵌入式系统中使用哪种串行通信总线:

  • 电气坚固
  • 慢速 (32 kb/s)
  • 易于编程
  • 易于与微控制器接口

它不会传输太多数据,但需要以高速(100 - 500 Hz)定期传输。我发现如果你的地线有噪音,RS-232 就不够可靠。CAN-bus 看起来很有趣,但我没有这方面的经验。

我们目前对 AVR AT90CAN128 微控制器的组合感兴趣。