2016-02-16 2 views
1

Я хотел бы послать одну строку через последовательный порт:Передача данных из последовательного порта

У меня есть два Raspberry Pi 2. Каждый из них имеют модуль XBee. Я хочу отправить данные от одного к другому. Они правильно подключены.

Чтобы проверить отправку данных у меня есть этот маленький питон скрипт:

import serial 

ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=.5) 
cpt = 0 

while True: 
    ser.write('{}'.format(cpt)) 
    ser.write(' Hello world ! \r\n') 
    cpt = cpt + 1 

Мой другой Raspberry Pi, связанный с Minicom recieves эти данные

world ! 
8 Hello world ! 
9 Hello world ! 
10 Hello world ! 
11 Hello world ! 
12 Hello world ! 
13 Hello world ! 
14 Hello world ! 
15 Hello world ! 
... 

Выход странно иногда начинаются в 10, иногда на 5. В этом выпуске у меня есть слово «мир», которое является одним ...

Но я просто хочу отправить одну строку с помощью этого кода:

import serial 

ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=.5) 

ser.write('Hello world ! \r\n') 

Теперь я ничего не получил ... Не знаю, почему.

Все знают мою проблему?

ответ

0

Некоторые возможности:

  • Поскольку это не непрерывный цикл больше, подключение к другой Pi должны быть стойкими при запуске сценария на первом Pi. Постоянны ли связи?
  • Правильно ли установлен последовательный порт ttyUSB0? Проверьте последовательный порт с помощью dmesg.
  • Соединения могут быть ослабленными, или может быть недостаточно питания для Pi.

Обновите, если это возможно.

1

Добавьте задержку после открытия последовательного порта, прежде чем приступать к отправке на него данных. Возможно, что модуль XBee не запускается до открытия последовательного порта и требует некоторого времени для загрузки и восстановления ссылки на другой модуль.

При скорости 9600 бод (примерно 960 сП), если вы теряете 190 символов (10 последовательностей от 0 до 9, каждый из 19 символов, включая пробелы и CRLF), вам потребуется задержка примерно 190/960 = 0,2 секунды. Поднимите его до 0,5 секунды, если вы не спешите, и посмотрите, разрешит ли это проблему.

Смежные вопросы