通过覆盆子pi通过串行端口发送字符串缓冲区

时间:2018-12-10 14:43:32

标签: python-2.7 serial-port raspberry-pi2 stringbuffer

我有一个在Raspberry Pi 2 B上运行的python脚本(在IDLE 2.7.13上),在这里我生成一个字符串缓冲区(如果我正确理解了字符串缓冲区的含义),每个字符串缓冲区都有6个随机的十进制数字,每个数字从0到500时间。使用while循环,我尝试通过raspberry Pi的串行端口将此字符串缓冲区发送到我的PC,并在腻子上显示结果。但是,腻子的产量不稳定。当我发送它时,它从不显示整个字符串,有时它会跳过字符串的大部分。每个循环中腻子上显示的字符数也是完全随机的。我认为这与代码中设置的串行端口参数有关,但是我不确定它们中的每个参数如何影响输出。您对这里的问题有任何想法吗?预先谢谢你。

#!/usr/bin/env python
import random
import decimal
import time
import serial

ser = serial.Serial(

    port = '/dev/ttyAMA0',
    baudrate = 9600,
    parity = serial.PARITY_NONE,
    stopbits = serial.STOPBITS_ONE,
    bytesize = serial.EIGHTBITS,
    timeout = 1
)

time.sleep(2)

counter = 0

#isws thelei edw ena time.sleep(2) gia na prolavei na anoiksei i seiriaki

while 1: # i while True:
    x = float(decimal.Decimal(random.randrange(0, 5010))/10)
    y = float(decimal.Decimal(random.randrange(0, 5010))/10)
    z = float(decimal.Decimal(random.randrange(0, 5010))/10)
    thita = float(decimal.Decimal(random.randrange(0, 5010))/10)
    u_x = float(decimal.Decimal(random.randrange(0, 5010))/10)
    u_y = float(decimal.Decimal(random.randrange(0, 5010))/10)
    string_buffer = str(x)+","+str(y)+","+str(z)+','+str(thita)+','+str(u_x)+','+str(u_y)+'/'+'\n'
    print string_buffer
    ser.write(string_buffer)
    time.sleep(1)
    counter += 1

ser.close()

0 个答案:

没有答案