Neuroware
@Neuroware
Программист в свободное от работы время

Почему может не работать под Mono на Rapberry программа, что по Windows работает отлично?

Есть программа работающая с COM портом,
Код программы
Прошивка устройства с которым связывается Малинка

Вроде как все права на порт есть, и запускаю по рутом и ошибок нет, но обмена между ними как будто не идет совсем. Когда программу запускаю под Windows все работает идеально. Казалось бы код должен исполняться одинаково, а тут не работает совсем. Есть идеи у кого ни будь куда копать?
  • Вопрос задан
  • 601 просмотр
Пригласить эксперта
Ответы на вопрос 2
начать можно с проверки обмена между RPi и PC (нужен адаптер TTL-USB. вообще здесь хорошо расписано, как к компу подключать: elinux.org/RPi_Serial_Connection )
на RPi, например, так: socat - file:/dev/ttyACM0,b115200,raw,echo=0
на PC: можно что-нибудь вроде этого

если нету адаптера для подключения к PC, можно выполнить простейший loopback тест на RPi:
ставим перемычку между Rx и Tx пинами, запускаем команду socat выше и пробуем набирать символы. видим по 2 символа -- все ок, последовательный порт работает. если нет -> изучаем ссылку выше.

UPD: RPi похоже под другим именем свой UART отображает. На RPi3 -> /dev/ttyAMA0 . предыдущие ревизии: /dev/ttyS0
Ответ написан
Комментировать
@Vasily_Pechersky
Системщик с опытом
В дефолтной конфигурации рашбиана есть перенаправление stdout на tty
в /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Убираем
console=ttyAMA0,115200 kgdboc=ttyAMA0,115200
Если это третья Малина, то вместо ttyAMA0 будет ttyS0

Если интересна теория - по умолчанию все диагностические сообщения выводятся в сериальную консоль. Для дебага и это на уровне старта ядра. Для работы в сериальника в приложениях это надо отключить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы