python串口读取在Pycharm中工作正常,但有时在批处理文件中不起作用

问题描述 投票:0回答:1

我编写了一个python脚本,该脚本从串行端口读取数据。该脚本在Windows机器上运行。在串行链接的另一侧,有一个连接了摄像头的微控制器。拍照后,微控制器将其保存在闪存中,并且每当python脚本发送对该图片的请求时,它将字符串形式的所有数据发送到串行端口,然后脚本解析该数据并逐行读取数据并保存在一个文件中,然后将其转换为二进制图像文件。每当我在Pycharm中运行此脚本时,它总是可以正常工作而不会丢失任何数据,但是当我为此脚本创建了批处理文件时。当我有时运行批处理文件时,从串行端口读取数据时会丢失一些数据,从而导致映像文件损坏。从串行端口读取的数据格式如下:

20044478:00 00 00 00 00 00 00 00 00 E0 01 80 02 3F 00 32

20044488:12 0B 51 04 51 04 00 00 FF DB 00 84 00 10 0B 0C

20044498:0E 0C 0A 10 0E 0D 0E 12 11 10 13 18 27 1A 18 16

200444A8:16 18 30 22 24 1D 27 39 32 3C 3B 38 32 37 36 3F

200444B8:47 5B 4D 3F 43 56 44 36 37 4F 6B 50 56 5E 60 65

200444C8:66 65 3D 4C 6F 77 6E 62 76 5B 63 65 61 01 11 12

200444D8:12 18 15 18 2E 1A 1A 2E 61 41 37 41 61 61 61 61

200444E8:61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61] >>

我认为与此问题相关的部分代码是:

def wait_On_serial_camera_capture():
global ser
out_file = open('test.txt', 'w+')
line_read = ser.readline()
# # time.sleep(0.1)
if line_read == "":
    print ("Error in image capturing or problem in transferring image file to the PC !")
while line_read != "":
    line_read = ser.readline()
    # # time.sleep(0.1)
    # # print (line_read)
    sys.stdout.write(line_read)
    sys.stdout.flush()
    out_file.write(line_read)
out_file.close()
ser.close()

我编写了一个python脚本,该脚本从串行端口读取数据。该脚本在Windows机器上运行。在串行链接的另一侧,有一个连接了摄像头的微控制器。 ...

python batch-file pycharm pyserial
1个回答
0
投票

检查您的环境。

© www.soinside.com 2019 - 2024. All rights reserved.