通过串行端口从 Python 发送文件

Send file over serial port from Python

我正在尝试通过串行端口发送文件(在本例中为 .jpg 图像)。

目前它通过调用外部脚本来工作:

subprocess.Popen(['./sendFile.sh','myImage.jpg']).communicate()

其中 sendFile.sh 是:

cp /home/pi/ /dev/ttyAMA0

此方法有效但不稳定。有时我的 Python 程序在传输文件后停止。

我想知道是否可以在 Python 中执行此操作而不是调用脚本寻求帮助?我搜索了XMODEM,但似乎两端都必须安装它。我正在将图像发送到 GPRS 芯片,它不允许我修改上面的任何代码。所以给接收端安装东西是不可能的。

import serial
s = serial.Serial("/dev/ttyAMA0")
s.write(open("target.txt","rb").read())

可以使用os.open直接打开一个dev:

f = os.open('/dev/ttyAMA0', os.O_RDWR)
f.write(open("myImage.jpg").read))
f.close()