Форум сайта python.su
Добры день, прошу помочь с неизвестной мне ошибкой. При чтении данных с com port, если символы не повторяются больше двух раз подрят (например: ss, dd ,dfdff) вывод на экран идет нормально. Как только я принимаю три одинаковывх символа подряд (например: sss, fff, dgvvv) то печатаются неизвестные символы. Скажите пожалуйста в чем может заключатся такое поведение.
#Code:
import serial
ser = serial.Serial()
c = ser.readline()
print('c:', c)
print('c:Windows-1251 - ‘, (c.decode(’Windows-1251')))
#print('c:utf-8 - ‘, (c.decode(’utf-8')))
#End.
Пример вывода на экра при приеме подряд трех символов ‘s’ , ('sss')
c: b'ss\xf3\n'
c:Windows-1251 - ssу
Пример вывода на экра при приеме не повторяющихся символов, ('abcdefg')
c: b'abcdefg\n'
c:Windows-1251 - abcdefg
Отредактировано Ndrnd (Апрель 25, 2021 14:28:51)
Офлайн
Общие комментарии.
1. Из вашего кода совершенно непонятно что такое self.ser ни как вы открыли ком порт.
2. В коде вообще опущено как именно вы передаете данные.
А в том что вы привели все нормально, что пришло то и декодировалось.
Офлайн
doza_and1. Поправил код.
Общие комментарии.1. Из вашего кода совершенно непонятно что такое self.ser ни как вы открыли ком порт.2. В коде вообще опущено как именно вы передаете данные.А в том что вы привели все нормально, что пришло то и декодировалось.
Офлайн
NdrndВидимо, он что-то передаёт. Попробуй по-другому подать данные на тот же скрипт. Увидишь, что он работает предсказуемо.
2. Передаю с hyper terminal по com порту
Офлайн