树莓派PYTHON使用rs232 接一维条码模块

FsTy 提交于 周一, 01/11/2016 - 19:24

1.sudo nano /boot/cmdline.txt 删除 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200  我的文件只有console=ttyAMA0,115200

2.sudo nano /etc/inittab    【注释最后一行内容】
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


我没这个文件

3.sudo systemctl disable getty@ttyAMA0.service

4.重启。

5.条码枪第4脚:(RXD 接收)---MAX3232第7脚-----MAX3232第10脚----树莓派的TXD 发送 (第8脚)
 条码枪第5脚:(TXD 发送)---MAX3232第8脚-----MAX3232第9脚-----树莓派的TTL的RXD 接收(第10脚)

6.python3 代码

# -*- coding: utf-8 -*
import serial
import time
import string
import binascii
s=serial.Serial('/dev/ttyAMA0',9600)
#s.open()
s.flushInput()
time.sleep(0.2)
d=bytes.fromhex('02 82 03 83')
s.write(d)
time.sleep(0.2)
data=s.read()
if data == b'\x06':
    print("准备扫描")
else:
    print("打开扫描失败")
    exit()
data=s.readline()
print(data)
#s.close()

使用CP2102USB转TTL一样测试成功。使用HL340转rs232测试成功。FTD1232成功。

 $ python -m  serial.tools.list_ports
/dev/ttyAMA0
/dev/ttyUSB0
2 ports found

注意:扫描模块的识别模式必须为 按钮开/关 结束符为 CR+LF