我需要一些与串行端口设备通信的帮助。我在 BIOS 中将串行端口设置为“自动”IRQ。该设备(温度控制器)具有以下数据协议:
波特率:9600 Tx起始位:1 Tx数据位:1 Tx停止位:2 Rx起始位:1 RX数据位:8 RX停止位> = 1
该设备最后有一个 UNIX 接口。
当我使用 root 打开 cutecom 时,收到以下消息:
~# cutecom
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory
QFileSystemWatcher: failed to add paths: /root/.config/ibus/bus
Bus::open: Can not get ibus-daemon's address.
IBusInputContext::createInputContext: no connection to ibus-daemon
我不清楚如何在 /dev dmesg 中定位设备,显示一个 tty 串行设备:
$ dmesg | grep tty
[ 0.000000] console [tty0] enabled
[ 0.708459] 00:07: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
然后我进入/sys/class/tty/ttyS0
cat dev 来获取主设备号和次设备号
#cat /sys/class/tty/ttyS0/dev
4:64
我还检查了 tty0
#cat /sys/class/tty/tty0/dev
4:0
因此我在 /dev 中查找了这些项目并找到了它们的用户友好名称:
# ll -R /dev | grep "4, *0"
crw------- 1 root root 254, 0 Mar 24 12:43 rtc0
crw--w---- 1 root tty 4, 0 Mar 24 13:14 tty0
# ll -R /dev | grep "4, *64"
crw-rw---- 1 root dialout 4, 64 Mar 24 13:04 ttyS0
无论我发送什么,我都不会从 cutecom 控制台收到任何返回:
所以,现在我很困惑。看起来好像设备存在,但是当 cutecom 建立连接并输入命令时,控制台中没有返回任何内容,设备似乎没有响应。我想我一定是做错了什么。我如何验证此串行设备是否已连接到我的计算机?我该怎么做才能排除此连接的故障?
答案1
我找到了解决方案。当 VT 传感器连接到它向其提供反馈的 NMR 时,会使用零调制解调器。当我将 VT 连接到我的计算机时,我也使用了零调制解调器。在尝试了所有设置组合后,我尝试摆脱零调制解调器,并使用常规串行电缆。
此时,我就能发送命令并取回数据。