Wpis z mikrobloga

Mircy mam problem ze skomunikowaniem prostego programu napisanego w visual studio z arduino leonardo. Arduino po otwarciu portu powinno wysyłać pojedyńcze znaki do kompa i dzieje sie tak gdy odpalę terminal w arduinoIDE albo w putty. Gdy otwieram serial port w moim programie dioda rx miga raz a potem brak reakcji ze strony arduino. Port i prędkość sie zgadzają, tak jak i liczba bitów, parzystość oraz bit stopu. Czemu może sie tak dziać? #arduino #csharp
  • 11
@RolnikSamWdolinie Arduino nie ma za bardzo jak się zbuntować bo ono tylko nadaje. Równie dobrze mógłbyś zwierać linie RX komputera do masy i widziałbyś krzaki w konsoli. Spróbuj odłączyć linie TX komputera od arduino - tak żeby arduino mogło nadawać ale żeby nic nie odbierało.
@AdireQ: Na razie nie mam jak sprawdzic bo jestem w robocie ale algortm jest taki ze co 500ms timer odpala funkcję wysyłającą literkę po serialu. Próbowałem zmieniać prędkości i nie pomogło. Generalnie ponoć w ukłądach na mega32u4 należy poczekać aż port się aktywuje i stosowałem pętle while (!Serial) { }. Gdy odpalalem terminal w arduino ide to widać było po diodach że przekaz ruszał i nie przestawał nawet jak odłączyłem.
@RolnikSamWdolinie: Tak jak @Analityk mówił - W Arduino Leonardo jest sprzętowy USB i na nim dopiero emulowany jest port szeregowy UART. Diody RX i TX nie reprezentują stanów na magistrali tylko migają jak im kontroler każe.

Pamiętaj też że port szeregowy może być otworzony tylko w jednym programie na raz. Czasem jest tak że jak się terminal wyłączy bez zamknięcia portu to w systemie ten port nadal widnieje jako zajęty i
@AdireQ: No dobra wiem, że tak jest ALE... Gdy w swoim programie próbuje otworzyć otwarty gdzieś indziej port wyskakuje mi błąd o zajętym porcie. Przy otwieraniu połączenia z Ardu tego nie miałem. Resetowałem płytkę i otwierałem port. Bez rezultatu :/ Tak jakby czekał na jakiegoś handshake'a