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
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.
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
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.