• Микроконтроллер отправляет через UART-USB преобразователь строки в виртуальный COM порт. Почему они отображаются кусками?

    @Kopcheniy Автор вопроса
    Объявляем в конструкторе окна строку — свой буфер.
    #Буфер для накапливания строк из ком порта.
            self.serialStrbuffer = ""

    Накапливаем её до прихода символа конца строки, потом разделяем строку на этом символе и помещаем в список. Затем, если конечный элемент списка – пустая строка, то выводим все элементы списка кроме последнего в своё текстовое поле.
    def onRead(self):
            rx_data = self.serial.readAll()#Считываем куски строк из буфера
            rx_str = str(rx_data, 'utf-8')# Переводим массив байт в строку
            #Соединяем куски в цельные строки в нашем буфере. Разделитель "", т е без разделителя. 
            self.serialStrbuffer = "".join([self.serialStrbuffer, rx_str])
            #print(self.serialStrbuffer)
    
            # Разделяем строки на подстроки на символе конца строки
            tempList = self.serialStrbuffer.split("\r\n")
            #print(tempList)
    
            #Как только приходит кусок строки, содержащий символ конца строки \r\n,
            # в списке становится на одну строку больше. Значит в первом элементе списка целая строка.
            #Иногда прилетает сразу 2 целых строки. Поэтому сделаем цикл. Последний элемент списка 
            # содержит символ конца строки.
            length = len(tempList)
            if length>1 and tempList[length-1] == '':# Если строка не одна и последняя пустая
                
                #for string in tempList:
                    #self.plainTextEditLog.appendPlainText(string)
                #Выводим все строки из списка, кроме последней.
                for i in range(0,length-1,1):
                    self.plainTextEditLog.appendPlainText(tempList[i])
    
                self.serialStrbuffer = ""#очищаем буфер
                #  очищаем список, (он и так очистится, т к очистили буфер)


    Ф-я print выводит в терминал такое
    65a93da3a9a36813257037.png
    Все строки, присылаемые микроконтроллером заканчиваем символом конца строки "\r\n".

    Возможны и иные варианты решения, но это работает.
    Ответ написан
    Комментировать
  • Как правильно подключить RGB дисплей 480х272 к DPI24 (на GPIO) у Малины 3 В?

    @Kopcheniy Автор вопроса
    Решил задачу. Описал здесь.
    Ответ написан
    Комментировать
  • Rasberry Pi 3B при первом же запуске не принимает логин/пароль (Login Incorrect). Что можно сделать?

    @Kopcheniy Автор вопроса
    Всё, вопрос решён. Ключевое то, что я использую Малину в режиме Headless (без монитора, клавиатуры и мыши), подключаюсь через SSH. В новых версиях Raspbian OS удалён пользователь по умолчанию и его нужно сначала создать. Сделать это можно либо при записи образа системы через Imager или после (добавить username:encrypted-password в специальный файлик). Пробовал только первый вариант, он помог. На этом и остановился. Благодарю всех, кто помогал. На всякий случай, Setting up a Headless Raspberry Pi.
    Ответ написан
    Комментировать