Проблема с последовательными данными в последовательном порту orange Pi zero python

#python #serial-port #pyserial #rfid #orange-pi

Вопрос:

Я считываю данные RFID с RFID-карты с помощью последовательного порта. Карта непрерывно отправляет данные.

 serial_port = serial.Serial(
    port="/dev/ttyS2",
    timeout=2,
    baudrate=38400,
    bytesize=serial.EIGHTBITS,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE
)
while True:
    cmdRet=serial_port.read(6)
    print("Raw1 = " str(cmdRet))


 

Если я использую преобразователь USB в последовательный и подключу его к orange PI, он правильно считывает данные. Согласно документации также, когда он не обнаруживает RFID-карту, он непрерывно отправляет ASCII Urn , но если я подключу UART orange PI, он считывает неверные данные, например, когда RFID-карты нет, он считывает x00xbdUy=

в то x00 время как это для нулевого символа и 0xbd даже не является допустимым utf-8 символом.

Я также подключил общую группу, и я не уверен, в чем проблема. Может ли кто-нибудь направить меня?

Я должен использовать UART оранжевого PI в конечном продукте.

Комментарии:

1. Вам необходимо четко определить эти «последовательные порты» , которые вы пытаетесь использовать. Вы путаете порты RS-232 с последовательными портами TTL (UART)?

2. Я думаю, что вы правы. TTL должен быть соединен с TTL, а RS-232-с RS-232.

Ответ №1:

  • Потому что он считывает байты с последовательного порта.
  • Попробуйте расшифровать его, например ***.decode("utf-8") .

Комментарии:

1. речь идет не о расшифровке. Я использовал это декодирование с помощью преобразователя USB в последовательный, и это идеальное чтение, оно даже выдает ошибку, когда я использую декодирование в UART. Ошибка заключается в print("Raw1 = " cmdRet.decode("utf-8")) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 0: invalid start byte