问题标签 [usbserial]

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 投票
1 回答
1359 浏览

serial-port - 如何在 C# 中连接到特定的 RFID usb 设备

我有一个 RFID 设备,它通过 USB(串行端口或 com)连接到 pc 并发送数据如何获取它连接的端口的名称?我怎样才能得到它的数据?(它以十六进制格式发送 16 个字节)

我用 c# 编写了这段代码,但是它不起作用!

我想检测这个设备连接,然后等待从它接收数据。这是我第一次这样做。我现在很困惑。:(

0 投票
1 回答
1963 浏览

android - 从 USB(多产)到 android 设备的数据传输

我发现了一个问题,用于读取 FTDI 设备的 USB 数据。 传输数据 USB 我将此代码用于多产设备,并且可以检测到 USB 等,除了 conn.bulkTransfer() 给出 -1。

谁能告诉我我需要做哪些改变?先感谢您。

0 投票
1 回答
1790 浏览

c# - System.IO.Serial

我有一个 USB 设备,它应该在查询时发送一个号码。

我的指示是:

  1. 将 USB 端口连接到 PC,然后以 9600 波特、8 个数据位、无奇偶校验、1 个停止位打开虚拟串行端口。
  2. 发送 ESC(我认为是 char 27)
  3. 你会得到“>”作为确认
  4. 发送“c”,您将得到计数,后跟“<”

我到处看了看,一定不明白我在读什么,因为我不知道如何从单位得到回应。

  1. 我是否正确发送“ESC”键?
  2. 我是否正确查询响应?
  3. 我是否正确显示了假设的响应?
  4. libusb我需要研究什么吗?我认为它是 .NET 早期版本的库。

提前致谢。

这是我的代码:

}

0 投票
2 回答
41452 浏览

ubuntu - 无法在 Ubuntu 12.04 的 USB 串行端口上设置波特率

我刚刚从 Ubuntu 10.04 升级到一个项目,该项目通过USB串行端口以 115,200 波特连接嵌入式设备。升级后,它不起作用,但我重新启动并能够连接。自从关闭并重新启动我的系统后,我一直无法连接。串行线看起来像是以错误的波特率连接(快速字符串,如下所示:

USB 设备正在被识别并设置为/dev/ttyUSB0。当我尝试设置波特率时,stty我得到:

如果我尝试设置9600它似乎工作:

但其他任何事情都失败了:

这是 stty 看到的内容:

我可以使用 stty(回声、回声等)更改其他值,但不能更改波特率。

我在网上看到一条评论说有人可以用Minicom设置波特率,但不能从命令行设置,所以我得到了 Minicom 并尝试了它,但我得到了相同的结果(似乎是错误的波特率)。

我也试过setserial,但也拒绝接受/dev/ttyUSB设备:

最后,这里是设备,以及来自 dmesg 的设置:

我已经在 Ubuntu 10.04 下使用这个设备几个月了,上周能够使用它们,但是自从关闭并重新启动后,我就无法使用它们了。我在网上查了一下,发现有几个人有类似的问题,但没有一个有解决方案。我该如何解决这个问题?

0 投票
1 回答
3095 浏览

python - Python中的半双工串行通信

我有一个带有内置 USB/串行适配器的设备(显示为 Prolific PL2303)。设备文档提供了有关如何与其通信的完整详细信息,并提供了一个示例 Windows 应用程序。但是,我需要在 Linux 上使用它——最好是使用 Python,但我对此并不太重视。

设备文档声明该设备以 9600、8N1 半双工运行。Windows 应用程序运行良好 - 设备运行良好(所以我知道这不是设备问题)。但是,我无法在 Linux 上使用 Python 与它进行通信。我正在使用 pySerial,并且我尝试了一个类似的(全双工,也是 PL2303)设备,它工作正常。

我尝试了设置 xonxoff、rtscts 等的几种组合。我还尝试使用 setRTS(True) 切换 RTS 并检查 CTS 和 DSR 等 - 全部返回 False。我可以使用 pySerial 成功打开设备(我可以看到活动指示灯闪烁 - 简单但有效的测试)如果您在读/写期间拔下它,pySerial 会抱怨。

我设置什么标志/行或发送什么数据似乎并不重要,总是得到相同的结果。

忽略写命令中的数据——这只是一个状态检查命令。不管那里有什么,设备应该以答案或错误响应。

我什至在设置各种 ctsrts 标志等之间关闭并重新打开设备,然后拔下/重新插入它以强制重置。如上所述,它继续使用 Windows 测试应用程序正常工作。我不能使用 Portmon 等来嗅探 Windows 端口流量,因为它是 64 位 Win7 安装,而且我目前没有时间构建 XP 机器。

有什么想法吗?

更新:我还在演示应用程序所在的同一个 Windows 机器上使用 Python 尝试了上述所有方法。它肯定会打开端口并进行通信,但无论写入什么内容,都不会返回任何信息。

UPDATE2:看起来它可能与设备驱动程序相关。一些额外的背景研究表明,一些 PL2303 芯片具有支持半双工的功能,但这不受 Linux 驱动程序的支持。Windows 演示应用程序附带一个专用设备驱动程序,并且该应用程序无法在使用默认 Windows 驱动程序的干净测试机器上运行。这让我觉得虽然我可以通过 Python 成功连接到它,但我无法控制双工通信(例如,即使以 STX/ETX 方式),因此这可能是一个绝望的案例。 叹息

UPDATE3:感谢以下评论。但是,我找不到任何解决方法。我尝试了 USB 协议分析器,并尝试拆卸驱动程序,但它变得相当耗时,所以最后我将设备拆开,经过一些修补后,我设法用合适的 PL2303 部件替换了现有的 USB 串行适配器- 在设备方面,它只是一个基本的 2 线串行接口,所以它不关心与它交谈的内容。我似乎无法结束这个问题,所以我会保持原样。

0 投票
13 回答
53960 浏览

android - 绕过android usb主机权限确认对话框

我想在工业中使用android,

我可以使用 slickdevlabs.com 库毫无问题地连接到 Profilic 和 Ftdi USB 到串行芯片。

该应用程序有一个服务,它在启动时启动,连接到 USB 串行端口并做其他事情。

我的问题是主机设备与用户没有任何交互,

所以当安卓问

没有人点击ok。

即使我检查了默认使用...复选框,如果我重新插入 USB 或重新启动主机设备,它会在下次启动时再次询问。

我以超级用户模式运行服务和应用程序,但没有区别,它再次询问。

我添加了意图过滤器,但没有区别,它每次都会问我。

任何意见如何绕过或禁用它?

我有 root 和 SU 访问权限。

0 投票
8 回答
51489 浏览

windows - 如何在 Windows XP 中为 USB 串行加密狗获得稳定的 COM 端口?

我开发嵌入式系统,需要串行端口进行通信。

在 Windows XP 中,USB 串行端口加密狗的数量不断变化,这使得它难以在脚本或 makefile 中使用(例如,用于通过其内置引导加载程序对 NXP 控制器进行闪存编程,或用于控制目标和两个实验室设备)同时)。

有没有办法修复这种加密狗的 COM 端口?在 Linux 中,我可以通过 udev 通过匹配 FTDI 加密狗的序列号来做到这一点(请参阅我刚刚在搜索此问题的答案时给出的答案)。

0 投票
2 回答
1487 浏览

c - 串行端口 read() 一次只获取更少的字节

操作系统:Ubuntu

串行端口使用:USB->串行适配器(多产 PL2303)

我有一个示例串口读写程序。在运行应用程序时,我正在尝试发送 4100 字节,编写能够一次性完成的程序。

在这里,我正在检查“n”值,它是 4100

I*强文本*n 接收端

上面的行在一个循环中,我在一次读取尝试中获得的字节数不超过 32 个。因此超过 128 次读取尝试(32+32+32 等...)以获得完整字节(4100)

在发送端如果能够一次推送整个字节,为什么不能一次接收呢?

0 投票
5 回答
112306 浏览

c# - "The semaphore timeout period has expired" error for USB connection

I'm getting this error...

The semaphore timeout period has expired.

On this line...

ThePorts.ActivePort1.Open();

...but I only get it from time to time. When it happens, it happens over and over again. Then the problem goes away, for hours or days, then it comes back.

The serial port is a USB with a BlueTooth connected.

I think this guy was having a very similar problem, but not in C#

Freeze on SerialPort.Open / DeviceIoControl / GetcommState with usbser.sys

As best I can estimate, I have read his entire problem, and the resulting comments, and the answer, but I really can't figure out which one fixed his problem, or if C# is significantly different from what he was experiencing.

Thanks for any help for the clueless. This is the actual code where it's happening.

0 投票
1 回答
30014 浏览

visual-c++ - 如何唯一识别 USB 设备?

是否可以通过唯一标识符来识别 USB 设备,例如操作系统具有 Mac-ID、硬盘 ID、以太网卡 ID 具有唯一标识符?我知道可以轻松更改 USB 分区的卷序列号,也可以在用户格式化时更改。

但是是否有某种“USB 硬盘 ID 或 USB 硬件 ID”的 ID,可以使用 WMI 服务通过 MFC(Visual C++ 或 C#)检索?这样的标识符对物理设备来说是唯一的吗?请澄清...