将文件发送到已打开的串行端口

2024-06-08 21:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个终端,通过串口与电能表进行通信。 在web上的文档中,我只找到了在开始通信和打开端口之前发送BIN文件的方法。 我的问题是如何在通信已初始化后发送BIN文件

我得到的错误是:

文件“C:\Users\shay\AppData\Local\Programs\Python\Python37-32\lib\site packages\serial\serialwin32.py”,第62行,处于打开状态 引发SerialException(“无法打开端口{!r} :{!r} .format(self.portstr,ctypes.WinError()) serial.serialutil.SerialException:无法打开端口“com5”:PermissionError(13,“访问被拒绝”,无,5)

谢谢,

谢伊

我发现了一个代码:

import serial
from xmodem import XMODEM

ser = serial.Serial('com5')

def getc(self, size, timeout=1):
        return self.ser.read(size)

def putc(self, data, timeout=1):
    return self.ser.write(data)

def Xmodem_init(self):
    self.xmodem = XMODEM(self.getc, self.putc)

def Xmodem_Send(self):
    f = open('105.8k', "rb")
    self.xmodem.send(f, retry=3)

    f.close()

Tags: 文件端口importselfsizebindeftimeout