logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Raspberry Pi, Raspbian Stretch, Python Serial - USART z Atxmega pomija znaki r

Paros 13 Gru 2017 13:37 810 0
REKLAMA
  • #1 16887681
    Paros
    Poziom 11  
    Posty: 93
    Pomógł: 1
    Witam.

    Raspberry wysyła coś do Atxmega poprzez USART . Bez problemu działa z konsoli poleceniem "echo 'coś tam' > /dev/ttyS0". Bez problemu działa poprzez skrypt PHP. Problem powstaje przy użyciu Pythona i "Seriala". Urządzenie na Atxmega było sterowane via Web i PHP. Działało dobrze, dopóki nie dopisałem sterowania przez program w Pythonie. Zauważyłem, że wystarczyło wystartować jakiś program z Pythona, a całe sterowanie Web i PHP brało w łeb. Długo nie mogłem załapać, o co chodzi. W końcu dotarłem, że wystarczy w malinie uruchomić skrypt Pythona
    Kod: Python
    Zaloguj się, aby zobaczyć kod


    nawet bez instrukcji wysyłających/odbierających coś z portu, a malina już zawsze wysyłając cokolwiek do Atxmegi pomija wszystkie znaki powrotu karetki (\r). Zarówno w konsoli jak i PHP. Trwa to do momentu, aż Atxmega odpowie cokolwiek - wtedy sytuacja wraca do normy. Co ciekawe, skrypt Pythona wysyła te znaki poprawnie, jakby "przejmując" seriala tylko dla siebie. Może to mało czytelnie napisałem, więc jeszcze raz:

    załóżmy, że chcę wysłać ciąg "aaaa\r"

    Konsola wysyła "aaaa\r", tak samo skrypt PHP. Uruchamiam skrypt Pythona. Wysyła poprawnie "aaaa\r". Zamykam skrypt Pythona. Konsola wysyła tylko "aaaa", to samo PHP. Python uruchomiony ponownie bez problemu wysyła "aaaa\r". Trwa to aż do resetu maliny (tak robiłem wcześniej), albo do momentu, aż Atxmega wyśle jakikolwiek znak do maliny - wtedy wszystko wraca do normy, aż do ponownego uruchomienia Pythona z serialem.



    Co to może być? Python 3 ale również 2.
  • REKLAMA
REKLAMA