Python3 Pyserial

Система -> Администрирование -> Источники программного обеспечения -> Обновления (вкладка) -> Проверить наличие обновлений: [Ежедневно | Каждые два дня | Еженедельно | Каждые две недели]

0
задан 21 June 2019 в 14:55

2 ответа

Я решил проблему. Я использовал ser.flush, но даже если я не использовал его, программа будет работать. Я думал, что было бы хорошо очистить входной буфер. Я сделал некоторые дополнения к коду.

# -*- coding: utf-8 -*-

import serial
import time

ser=serial.Serial('/dev/ttyS1',9600)
ser.flushInput( )
ser.write(b'\nMerhaba Lutfen [y] veya [n] karakterlerinden birini tuslayiniz: ')
print ("Seri Haberlesme basliyor\n")

while 1:
    ser.flushInput()
    karakter=ser.read().decode()
    if karakter ==       'y':
            print ("\nYes denildi\n")
            ser.flushInput()
            ser.write( b'\n[y] karakterini tusladiniz\n')
    elif karakter == "n":
            print ("\nNo denildi\n")
            ser.flushInput()
            ser.write(b'\n[n] karakterini tusladiniz \n')
    else:
            print ("\nbelirlenemeyen bir karakter girisi\n")
            ser.flushInput()
            ser.write(b'\nGirilen karakter =>')
            ser.flushInput()
            ser.write(karakter.encode())
            ser.flushInput()
            ser.write(b'\nKarakter belirlenemedigi icin cevap alinmadi. [y]veya [n] karakterlerinden birini girin\n')
    time.sleep(0.1)
0
ответ дан 21 June 2019 в 14:55

Попробуйте очистить буфер ввода перед любой командой чтения или записи.

ser.flushInput()
0
ответ дан 21 June 2019 в 14:55

Другие вопросы по тегам:

Похожие вопросы: