Я хочу отправлять данные с одного пи на другой с помощью связи UART. Первая модель Raspberry — это Raspberry Pi 4, а вторая — Raspberry Pi 3. Для этого соединения я подключаю оба контакта Raspberry следующим образом:
Pi 4 -> Pi 3
Tx -> Rx
Rx -> Tx
Ground -> Ground
Я уже активировал оба последовательных соединения Pis в конфигурации малины, следуя инструкциям по этой ссылке: https://iot4beginners.com/raspberry-pi-configuration-settings/. Чтобы записать и отправить данные, я создал следующую программу на Python:
import time
import serial
ser = serial.Serial(
port='/dev/ttyS0', #Replace ttyS0 with ttyAM0 for Pi1,Pi2,Pi0
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS)
counter=0
while True:
ser.write(str.encode(str(counter)))
time.sleep(1)
counter += 1
Для чтения и печати полученных данных я создал следующую программу:
import time
import serial
ser = serial.Serial(
port='/dev/ttySO', #Replace ttyS0 with ttyAM0 for Pi1,Pi2,Pi0
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS
)
counter=0
while 1:
x = ser.readline()
print(x)
Наконец, когда я запускаю программу чтения, я получаю следующую ошибку:
Traceback (most recent call last):
File "serial_read.py", line 14, in <module>
x = ser.readline()
File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 501, in read
'device reports readiness to read but returned no data '
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
Я новичок в общении с Raspberry и буду благодарен за любое предложение.
write()
, чтобы соответствующийreadline()
нашел конец строки. - person Mark Setchell   schedule 16.03.2021File "/usr/lib/python2.7/...
- person Mad Physicist   schedule 16.03.2021