如下我能够通过给定的pid和vid获得附加到32位win7OS机器的usb com端口名称,但是当在x64中运行时它会卡在以下行中:
comports.Add((string)rk6.GetValue("PortName"));
Run Code Online (Sandbox Code Playgroud)
这是我的代码
static List<string> ComPortNames(String VID, String PID)
{
String pattern = String.Format("^VID_{0}.PID_{1}", VID, PID);
Regex _rx = new Regex(pattern, RegexOptions.IgnoreCase);
List<string> comports = new List<string>();
RegistryKey rk1 = Registry.LocalMachine;
RegistryKey rk2 = rk1.OpenSubKey("SYSTEM\\CurrentControlSet\\Enum");
foreach (String s3 in rk2.GetSubKeyNames())
{
RegistryKey rk3 = rk2.OpenSubKey(s3);
foreach (String s in rk3.GetSubKeyNames())
{
if (_rx.Match(s).Success)
{
RegistryKey rk4 = rk3.OpenSubKey(s);
foreach (String s2 in rk4.GetSubKeyNames())
{
RegistryKey rk5 = rk4.OpenSubKey(s2);
RegistryKey rk6 = rk5.OpenSubKey("Device Parameters");
comports.Add((string)rk6.GetValue("PortName"));
}
}
}
}
return …
Run Code Online (Sandbox Code Playgroud) 我开发嵌入式系统并需要串行端口进行通信.
在Windows XP中,USB串行端口加密狗的数字不断移动,这使得它很难在脚本或makefile中使用(例如,通过内置的引导加载程序对NXP控制器进行闪存编程,或者用于控制目标和两个实验室设备)同时).
有没有办法修复这种加密狗的COM端口?在Linux中,我可以通过对FTDI加密狗的序列号相匹配(请参见通过的udev做这个答案,我只是给了,而寻找一个回答这个问题).
我正在尝试使用
屏幕/ dev / ttyUSB0
通过USB串行接口连接到旧计算机。
我希望在此网站上注册后,我会收到我问题的答案。我进行了搜索,但是还没有想出在命令行中放置正确的选项的方法,以从计算机中获得无垃圾的反馈(收到的文本都被弄乱了)。
我的操作系统是CentOs,Gnome 2.16.0。我看到有一个名为KPPP的程序,其中有一个“ Terminal ...”,但也没有弄清楚。因此,我试图将CLI与“ screen”一起使用,但是在设置正确的参数时遇到了麻烦(显然,我不知道如何将这些参数与stty一起使用)。这不是安装应用程序或对此计算机执行任何操作的选择,因此我必须使用已有的功能。“屏幕”似乎可以完成任务,但是如前所述,收到的文本是乱码(“ $$ @%idj ldj”等)
我需要这些参数用于计算机一:
波特:9600数据位:8奇偶校验:无停止位:2流量控制:硬件。
对于两台计算机,我需要:
波特率:9600数据位:7奇偶校验:偶数停止位:1流量控制:硬件
波特率很容易;
屏幕/ dev / ttyUSB0 9600
但是我不知道该怎么办。。我找到了停止位的选项:
cstopb(使用两个停止位)
-cstopb(使用一个停止位)
但是如何正确使用它?
屏幕/ dev / ttyUSB0 9600 -cstopb
要么
屏幕/ dev / ttyUSB0 9600,-cstopb
因此,如果有人可以通过所有列出的参数通过串行接口帮助我连接到另一台计算机,我将非常感激!
2016年12月22日更新:
我已经找到了这本有关stty的手册:http : //osr507doc.sco.com/man/html.C/stty.C.html
数据位与此选项相同吗?
Run Code Online (Sandbox Code Playgroud)cs5 cs6 cs7 cs8 Select character size (see termio(M)).
平价:
Run Code Online (Sandbox Code Playgroud)parodd (-parodd) Select odd (even) parity.
停止位:
Run Code Online (Sandbox Code Playgroud)cstopb (-cstopb) Use two (one) stop bits per character.
但是硬件控制呢?
无论如何; 这仍然无法正常工作;
Run Code Online (Sandbox Code Playgroud)screen /dev/ttyUSB0 9600 …
这个问题的解决方案可能非常简单,但我不熟悉动态地与设备连接.我正在做的是我正在制作一个python可执行代码,因此用户不必在他们的计算机或任何类型的python解释器上闲置,这意味着我不知道该设备将插入哪个USB端口至.该程序需要能够打开与通过串行转换为USB转换器连接的设备的连接.如何确定哪个连接设备是打开端口的正确设备?我正在使用pySerial与设备进行交互.任何帮助将不胜感激.
我正在使用 USB 转 RS232 电缆在两台 linux 机器之间进行通信。在连接了 USB 端的机器上,我运行:
dmesg | grep tty
Run Code Online (Sandbox Code Playgroud)
并得到以下输出:
console [tty0] enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0b: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
usb 2-1.2: pl2303 converter now attached to ttyUSB0
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。现在我运行 aminicom -s
并使用“串行端口设置”,将“串行设备”更改为“/dev/ttyUSB0”,将“BPS/Par/Bits”更改为“115200 8N1”,并为“硬件流程”选择“否”控制”和“软件流控制”。
我将这些设置保存为默认值,退出 minicom,然后minicom
再次运行。
Minicom …
我们正在尝试使用 minicom(在主机 pc 中)和 picocom(在基于 arm 的评估板中)组合传输文件。在评估板方面,我们有/dev/ttygserial
,在主机 PC 方面,我们有/dev/ttyUSB0
。
主机端minicom设置如下,
/dev/ttyUSB0
将 minicom 设置为接收模式的步骤。
ctrl+a R
,选择zmodem
。在评估板方面,我们使用 picocom 发送文件如下。
picocom -b 115200 -s "sz -vv" /dev/ttygserial
Ctrl+A and Ctrl+S
。**file
所有这些步骤都有效,我们能够将不同类型的文件从评估板传输到 PC,但现在我们想将此过程放入 C 代码中。为此,我有以下疑问,
minicom
使用单个命令设置为文件接收模式?(意思是非交互)?我正在开发一个 Android 应用程序,它从一些自定义硬件传输串行数据。我正在使用 mik3y 的usb-serial-for-android库以 OTG 模式通过 USB 获取串行数据,经过一些调整后工作正常。
\n\n然而,对于通过 USB 接口的每笔交易,UsbRequestJNI
都会记录一条init
和close
消息。这使得 LogCat 每秒被数千条日志消息淹没(注意时间戳):
02-17 09:30:21.590 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.590 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.594 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.594 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.598 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.598 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.602 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.602 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.606 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.606 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.610 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.610 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.614 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.614 2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 …
Run Code Online (Sandbox Code Playgroud) 通过 USB 2.0 的虚拟串行端口连接的传输速度或波特率是多少?我基本上需要将数据从 ARM 微控制器传输到 PC。微控制器支持USB,目前我正在通过使用USB CDC创建虚拟串口来传输数据。在使用 minicom(在 Linux 中)或 putty(在 Windows 中)时,无论应用程序中的波特率设置如何,我都能够接收数据。
这让我有点困惑,谁设置了数据传输速率以及应用程序中设置的意义是什么。在这种情况下,我期望的传输速度是多少?有什么方法可以控制和测量它们?
此外,对于流数据和间歇性发出命令,USB CDC是一个很好的解决方案吗?
我为自定义设备制作了一个签名的 USB 串行 inf 文件,并创建了一个安装程序,该程序可以将驱动程序成功安装到 Windows 7 (32/64)、Windows 8.1 (64) 但不是 Windows 10。这适用于默认安装(右-单击,安装)直接在文件上,使用设备管理器和使用 PNPUTIL。设备驱动程序安装成功,但使用的是 OEM usbser 驱动程序。单击“更新驱动程序”并在设备管理器中选择我的驱动程序后,Windows 提示我“已为您的设备安装了最佳驱动程序软件”。如果我使用设备管理器并选择“从磁盘安装”,我可以成功解决 Windows 10 强制执行自己的驱动程序的问题。但这并没有让我更接近成功的 inf 文件和安装程序。
我的默认安装过程:
如果我然后卸载它并重复步骤 3-5,它有时会允许我的自定义驱动程序坚持下去。
有人告诉我,我的驱动程序安装在 Windows 10 企业版上,这进一步混淆了问题。
问题:我做错了什么?
我的 inf 文件:
;************************************************************
; Windows USB CDC ACM Setup File
; Copyright (c) 2000 Microsoft Corporation
; Version v1.1, updated 17 April 2013
[Strings]
DriverPackageDisplayName="Rinstrum USB Serial Drivers"
ManufacturerName="Rinstrum"
ServiceName="USB RS-232 Emulation Driver"
linux.gserial="Rinstrum USB …
Run Code Online (Sandbox Code Playgroud) 我升级了我的 Linux(Opensuse 从 42.3 到 15),但遇到了新的错误。当我连接 USB 串行加密狗时,它在开发文件夹中显示 ttyUSB0,并立即断开连接并从开发列表中消失。
似乎都是来自“brltty”,但我不知道这是在做什么。
我的 dmesg 输出是:
[ 960.719371] usb 1-4: new full-speed USB device number 5 using xhci_hcd
[ 960.898481] usb 1-4: New USB device found, idVendor=10c4, idProduct=ea60
[ 960.898483] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 960.898484] usb 1-4: Product: CP2102 USB to UART Bridge Controller
[ 960.898485] usb 1-4: Manufacturer: Silicon Labs
[ 960.898486] usb 1-4: SerialNumber: 0001
[ 961.424298] usbcore: registered new interface driver usbserial …
Run Code Online (Sandbox Code Playgroud) usbserial ×10
serial-port ×5
usb ×5
tty ×2
windows ×2
64-bit ×1
android ×1
android-usb ×1
c# ×1
disconnect ×1
driver ×1
embedded ×1
gnu-screen ×1
inf ×1
java ×1
linux ×1
linux-kernel ×1
pyserial ×1
python ×1
zmodem ×1