![通过 USB 端口连接 UART 设备时出现问题](https://linux22.com/image/192226/%E9%80%9A%E8%BF%87%20USB%20%E7%AB%AF%E5%8F%A3%E8%BF%9E%E6%8E%A5%20UART%20%E8%AE%BE%E5%A4%87%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98.png)
我正在尝试通过 USB 与几个 UART 设备进行通信。 HT-06蓝牙模块和GY-NEO6MV2 GPS模块。我使用的是 Prolific PL2303 USB 电缆。作为备份,我还有一台 Silicon Labs CP2102。
当我连接PL2303时
- 命令
lsusb
返回Bus 001 Device 015: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
- 命令
dmesg
返回[147697.657037] usb 1-11: pl2303 converter now attached to ttyUSB0
- 节目 之一
ls -l
/dev
crw-rw---- 1 root dialout 188, 0 Jun 15 08:58 ttyUSB0
我已将自己添加到该dialout
组中并设置chmod
为666
.
然后,我使用 Putty 与端口/dev/ttyUSB0
、波特率 9600 和奇偶校验 8,1,None 进行串行连接。我将PL2303电缆连接到HT-06作为GND-GND、VCC-VCC、TX-RX和RX-TX。所有非常基本的东西。
Putty 屏幕开始时左上角有一个光标。我发送AT命令。我期待着好的,但什么也没发生。我有第二个 HT-06,但仍然一无所获。
我认为这可能是 RX 或 TX 电缆损坏(HT-06 上的 LED 闪烁,因此 VCC 和 GND 正常),因此我将 PL2303 换成了 CP2102。 lsusb 和 dmesg 都告诉我转换器已连接(再次位于/dev/ttyUSB0
)。使用相同的 Putty 设置我仍然一无所获。
按照类似的思路,我将 NEO6M 与 PL2303 和 CP2102 连接起来,并使用xgps
( 的子集gpsd
)。这会返回一个错误
gpsd is not connected to /dev/ttyUSB0
显然什么也没有发生。
我使用带有内核 5.4.0-74-generic 的 Linux Mint 20,其中包含 CP210X 和 PL230X 的驱动程序。我还尝试了不同的 USB 端口(USB2 和 USB3),尽管有 2 个不同的 USB-TTL 转换器、3 个 UART 设备和几个不同的串行终端应用程序(我也尝试过minicomm
和rfcomm
),但没有任何效果。
答案1
我挖出了一个旧的 Arduino,它以前可以在我的 PC 上运行,当时它是一个更旧版本的 Linux。使用最新的 Arduino IDE 和串行监视器...它可以工作。我现在可以与 HC-06 和 NEO6m 设备通信。不是我想要的解决方案,但它是一个解决方法
答案2
您可以分享您的 tty 配置 stty --all -F /dev/ttyUSB0 并检查 CLOCAL 标志,检查所有配置标志,还检查您的硬件配置,DB9 连接器有不同的接线配置。还请记住,速度是波特率或比特率(取决于驱动程序配置)。因此,如果您有时需要 9600 的比特率,则应将速度设置为 1200
答案3
picocom
我通过使用( ) 程序让调制解调器正常工作sudo apt install picocom
:
picocom /dev/ttyUSB0
然后只需键入命令。另外,如果不起作用,请尝试使用 sudo。