串口 - 无输出 Penmount DMC9000

串口 - 无输出 Penmount DMC9000

我正在尝试从一些串行端口读取一些数据(我需要它们来处理触摸屏控制器)。

我基本上所做的就是cat /dev/ttyS0查看触摸屏幕时串口会给出什么输出。我可以cat(或screenminicom)所有4个串行端口:/dev/ttyS0/dev/ttyS3,但对于所有这些端口,即使物理触摸屏幕,我也没有得到任何输出。

cat /dev/ttyS0(或任何其他 ttyS*)只是挂起并且不提供任何输出

两者都不cat /dev/ttyS0 | xxd给出输出。我必须catCTRL + C

screen /dev/ttyS0挂起且没有输出,其他 ttyS* 也是如此

有用的信息

操作系统

操作系统7

dmesg 中的 ttyS

[root@centos-t1 ~]# dmesg | grep -i 'ttys'
[    1.530144] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.551401] 00:09: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    1.572603] 00:0a: ttyS2 at I/O 0x3e8 (irq = 10) is a 16550A
[    1.593818] 00:0b: ttyS3 at I/O 0x2e8 (irq = 11) is a 16550A

ttyS 列表*

[root@centos-t1 ~]# ls -la /dev/ttyS*
crw-rw----. 1 root dialout 4, 64 29 dic 09.57 /dev/ttyS0
crw-rw----. 1 root dialout 4, 65 29 dic 09.57 /dev/ttyS1
crw-rw----. 1 root dialout 4, 66 29 dic 09.57 /dev/ttyS2
crw-rw----. 1 root dialout 4, 67 29 dic 09.57 /dev/ttyS3

设置串行输出

[root@centos-t1 ~]# setserial -g /dev/ttyS*
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 10
/dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 11

核心

[root@centos-t1 ~]# uname -a
Linux centos-t1 3.10.0-327.3.1.el7.x86_64 #1 SMP Wed Dec 9 14:09:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

LSSB

[root@centos-t1 ~]# lsusb
Bus 003 Device 004: ID 05e3:0723 Genesys Logic, Inc. GL827L SD/MMC/MS Flash Card Reader
Bus 003 Device 005: ID 058f:5608 Alcor Micro Corp. 
Bus 003 Device 006: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 004 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 004 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

请注意,PCI:004:002 实际上是连接到系统的 RFID 读取器。所以这不是我目前需要处理的连续剧。

串口芯片

芬泰克F81866

系统

Iei 嵌入式触摸屏 - AFL2-W10A-N28产品页面数据表

触摸屏控制器

Penmount DMC9000(我想是通过串行连接的,因为它不在 lsusb 列表中)

答案1

我已经设法解决了这个问题。由于 irq 问题,未能正确检测到串行端口。

这是我修复它的方法:

  1. 从 CentOS 7 切换到 Debian 8.2 (jessie) 使用以下内核(最新可用):Linux debian-term1 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u1 (2015-12-14) x86_64 GNU/Linux
  2. 暂时启用触摸屏通过setserial /dev/ttyS3 irq 0(这实际上是解决方案)
  3. 从以下位置下载 Penmount 驱动程序这个网站,配置 penmount.ini 以禁用嘈杂的蜂鸣声(通过BeepType=0)并通过安装驱动程序模块./install.sh
  4. 通过校准触摸屏gCal 9 /etc/penmount/penmount.dat(必须启动 X 服务器,显然它是一个 GTK 应用程序)
  5. /usr/share/penmount/penmount.sh通过添加包含setserial上述命令的脚本并将其插入到/etc/init.d/lightdm start)部分中,使更改永久化。我知道它很脏,但我打算尽快更换它。

谢谢你们的帮助,现在我的 Penmount DMC9000 工作得非常顺利!

相关内容