Raspberry pi mb + UART 8-битное сообщение - PullRequest
0 голосов
/ 10 января 2019

Я хочу отправить сообщение из Rpi в Atmega328 через UART, и должно быть только 8-битное сообщение (адрес, адрес, направление, количество шагов [5 бит]).

import RPi.GPIO as GPIO
import serial
import time,sys


var=0b11110000
SERIAL_PORT = "/dev/ttyS0"
ser=serial.Serial(SERIAL_PORT,baudrate=9600,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS)
time.sleep(1)
print("Sending")
ser.write(var)
ser.close()

Но я получил это

Sending
Traceback (most recent call last):
File "UART_2.py", line 11, in <module>
ser.write(var)
File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 558, in write
return len(data)
TypeError: object of type 'int' has no len()

Что я должен сделать, чтобы отправить его правильно?

1 Ответ

0 голосов
/ 11 января 2019

Похоже, вы должны передать байтовый массив ser.write вместо отправки одного значения. Попробуйте использовать var=[0b11110000], который имеет длину, а целое число 0b11110000 не имеет.
Если вы можете закодировать свой байт в виде строки, вы также можете найти больше ответов в pySerial write () не примет мою строку

...