串行端口热敏打印机通信

串行端口热敏打印机通信

我正在尝试通过 shell 与 Epson tm-t88iv 热敏打印机建立低级通信,但我搞不懂。我正在使用戴尔 vostro 1510 运行 ubuntu 13.10 64 位。

我通过一条多产的串行 USB pl2303 电缆将其连接起来。lsusb 显示:

ben@ben-Vostro1510:~$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0c45:63e0 Microdia Sonix Integrated Webcam
Bus 001 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 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

dmesg | grep tty 显示:

ben@ben-Vostro1510:~$ dmesg | grep tty
[    0.000000] console [tty0] enabled
[    1.488664] tty tty28: hash matches
[  225.882444] cdc_acm 2-4:1.0: ttyACM0: USB ACM device
[ 1478.741395] usb 5-1: pl2303 converter now attached to ttyUSB0
[ 3672.537405] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 3679.219805] usb 5-1: pl2303 converter now attached to ttyUSB0
[ 4657.704772] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 4699.905633] usb 5-1: pl2303 converter now attached to ttyUSB0
[ 4798.952739] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 9930.266470] usb 5-1: pl2303 converter now attached to ttyUSB0

我尝试使用 cutecom 向它发送特定的十六进制代码,但没有得到任何答复。我还尝试回显到 /dev/ttyUSB0,但我不知道从哪里读取响应。我还尝试了“sudo cat /dev/ttyUSB0”,但什么也没得到。

请帮我解决这个问题!谢谢!

解决方案:

我不得不跑

sudo chmod 777 /dev/ttyUSB0

然后以 root 身份运行 jpnevulator

sudo jpnevulator --tty /dev/ttyUSB0 --read

然后使用另一个写入模式,我写入了状态检查序列 02 AC 00 01 1C 00 00 03 30 30 43 45

并在屏幕上得到了打印机的响应。我现在遇到了与校验和不同的问题,但这是我进入低级编程的下一阶段要讨论的问题。

答案1

我对热敏打印机一无所知,但这是我用来测试 Arduino 或手机调制解调器的方式。

以 Android 手机作为调制解调器为例:

  1. 读取串口(需要root权限):

    sudo su
    cat /dev/ttyACM0
    

    您可以根据需要只阅读几行:

    head -n2 /dev/ttyACM0
    
  2. 写入串行,打开其他终端选项卡或窗口:

    sudo su
    echo -e "AT" > /dev/ttyACM0
    

    它显示OK在读取端口窗口上,您也可以发送十六进制数据(使用 -n 选项以避免在末尾发送新行)

    echo -e -n "\x41\x54\x0a" > /dev/ttyACM0
    

    与...一样:

    echo -e "\x41\x54" > /dev/ttyACM0
    

    Shell 会将未显示的十六进制显示为小方块,其中写有其值。试试这个。

    echo -e "\x13"
    

相关内容