#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