Spisu treści:
Wideo: Debugowanie szeregowe z CloudX: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
W tym projekcie mam na celu wyjaśnienie koncepcji debugowania za pośrednictwem terminala szeregowego. Ale najpierw na początek wyjaśnijmy jego koncepcję poprzez jej znaczenia.
1. komunikacja szeregowa
komunikacja szeregowa służy do komunikacji między płytą CloudX a komputerem lub innymi urządzeniami. Wszystkie płyty CloudX mają co najmniej jeden widziany port szeregowy (znany również jako UART lub USART): Serial. Komunikuje się na cyfrowych pinach RX i TX z innymi hardwares lub modułami komunikacji szeregowej (takimi jak gsm i gps), podobnie jak z komputerem przez USB za pomocą karty SoftCard. Tak więc, jeśli używasz tych funkcji, nie możesz również używać TX i RX dla wejścia lub wyjścia cyfrowego. Możesz użyć wbudowanego monitora szeregowego środowiska CloudX do komunikacji z płytą CloudX. Kliknij przycisk monitora szeregowego na pasku narzędzi i wybierz tę samą szybkość transmisji, która jest używana w parametrze wywołanym do serialBegin().
2. Debuguj
Debugowanie oznacza po prostu identyfikację i usuwanie błędów (sprzętu komputerowego lub oprogramowania). Debugowanie polega na lokalizowaniu i poprawianiu błędów kodu w programie komputerowym. Debugowanie jest częścią procesu testowania oprogramowania i jest integralną częścią całego cyklu życia oprogramowania. Weźmy na przykład, że twój kod został skompilowany pomyślnie i testujesz swój sprzęt i nie działa on zgodnie z oczekiwaniami, chociaż istnieje wiele sposobów na debugowanie kodu; prostym i skutecznym sposobem debugowania jest użycie debugowania szeregowego. CloudX IDE generuje 2 typy plików po udanej kompilacji, plik HEX i COFF. Plik HEX jest ściśle kodem maszynowym, który jest ładowany do płyty w celu wykonania w świecie rzeczywistym, ale może również działać na oprogramowaniu symulacyjnym komputera, takim jak Proteus Isis, podczas gdy plik COFF jest czytelnym formatem wykonywalnym na oprogramowaniu symulacyjnym komputera (Proteus Isis). W tym zakresie rozważymy dwa podstawowe typy debugowania na protokole szeregowym,
1. Miękkie debugowanie szeregowe:
W tej metodzie każdy test i debugowanie odbywa się na komputerze za pomocą przydatnego oprogramowania, takiego jak Proteus ISIS. Ponieważ CloudX w zasadzie generuje plik COFF, zalecam używanie tego do symulacji na PC, ponieważ za jego pomocą można w zasadzie przechodzić między wierszami kodu i zastanawiać się, skąd pochodzi problem, a jeśli twój kod musi działać bez przechodzenia, używając wirtualnego terminala z „wirtualnego „tryb instrumentu”, zawsze możesz wiedzieć, na której linii znajduje się kontroler w danym momencie. spójrzmy na ten przykład kodu,
Krok 1:
/*
* Plik: newmain.c
* Autor: OGBOYE GODWIN * * Utworzono 28 czerwca 2018 o godz. 10:15 */
#włączać
#włączać
/* zrobimy
czerwony pin1 zielony pin2 żółty pin3 * przycisk pin4 */ char *tell= "hmmm, byłem w kontakcie"; setup(){ pinMode(1, WYJŚCIE); pinMode(2, WYJŚCIE); pinMode(3, WYJŚCIE); pinMode(4, WEJŚCIE); Serial_początek (9600); loop(){ while(!readPin(4)); Serial_writeText(tele); Serial_writeText("….przejście do czerwonego"); Serial_write (0x0D); portZapis(1, 0x00); pinSelect(1, WYSOKI); opóźnienia(200); // spróbuj usunąć wszystkie opóźnienia z komentowania i zobacz, co się stanie // i zastąp je (na pewno się spodoba!). while(!odczytajPin(4)); Serial_writeText(tele); Serial_writeText("….przejście do zielonego"); Serial_write (0x0D); portZapis(1, 0x00); pinSelect(2, WYSOKI); opóźnienia(200); // spróbuj usunąć wszystkie opóźnienia z komentowania i zobacz, co się stanie // i zastąp je (na pewno się spodoba!).
while(!odczytajPin(4));
Serial_writeText(tele); Serial_writeText("….przejście do żółtego"); Serial_write (0x0D); portWrite(1, 0x00); pinSelect(3, WYSOKI); opóźnienia(200); // spróbuj usunąć wszystkie opóźnienia z komentowania i zobacz, co się stanie // i zastąp je (na pewno się spodoba!). } }
dzięki temu możesz zobaczyć, jak ważne jest debugowanie Serial, jeśli usuniesz opóźnienia. gdybyś to zrobił, zobaczyłbyś, jak kłopotliwy może być ten prosty kod, jeśli jest wykonywany w prawdziwym świecie bez tych opóźnień.
Krok 2:
2. Debugowanie sprzętu:
W tej metodzie każdy test i debugowanie odbywa się poprzez podłączenie płytki prototypowej CloudX do komputera za pomocą karty softCard i wykorzystanie terminala szeregowego CloudX IDE (zalecane) lub innego przydatnego oprogramowania, takiego jak Proteus ISIS compim, realTerm itp. Wygeneruj COFF plik nie może być tutaj użyty, ponieważ ta metoda wymaga załadowania HEX do sprzętu, polecam używać go dla karty CloudX. Zwróć uwagę, że twój kod działa bez kroków, dzięki czemu zawsze możesz wiedzieć, gdzie jest linia, w której działa kontroler w danym momencie przez wyjście szeregowe. spójrzmy na ten kod ten sam przykład wymieniony powyżej, skonfiguruj swój sprzęt tak, aby był podobny do kopania czerwonej diody --------- do pin1 zielonej diody --------- pin2 żółtej diody -- ------- przycisk pin3 --------- pin4
Krok 3:
kroki
1. Użyj tego samego kodu co powyżej
2. załaduj na swoją tablicę
3. uruchom Terminal szeregowy CloudX, klikając przycisk „serial” na pasku narzędzi
4. wybierz żądany port i szybkość transmisji (9600 w tym samouczku)
5.uruchom terminal, klikając połącz (odłącz, jeśli chcesz wyjść)
6. Przy otwartym/podłączonym porcie, na chwilę naciśnij dowolny przycisk, a zobaczysz wyjście szeregowe pokazane w oknach terminala. Zwróć uwagę, że jeśli masz opóźnienia w kodzie, wiele linii wyjścia szeregowego działa tak szybko bez kontroli, zanim zdejmiesz ręce z przycisku. Jeśli z jakiegoś powodu w kodzie masz taki lub podobny problem, zawsze możesz użyć tej metody do debugowania.
Zalecana:
HackerBox 0049: Debugowanie: 8 kroków
HackerBox 0049: Debug: Pozdrowienia dla hakerów HackerBox na całym świecie! W przypadku HackerBox 0049 eksperymentujemy z debugowaniem cyfrowych systemów mikrokontrolerów, konfigurujemy platformę LOLIN32 ESP-32 WiFi Bluetooth w środowisku Arduino IDE, stosując FastLED Animation L
4-bitowe wejście szeregowe i urządzenie pamięci masowej: 4 kroki
4-bitowe urządzenie wejścia szeregowego i pamięci masowej: kiedykolwiek wyobrażałeś sobie, jak twoja klawiatura przyjmuje dane wejściowe i jak te dane są przechowywane! Ten projekt to mniejsza wersja wprowadzania i przechowywania danych. Dopracowane wyjaśnienie, w jaki sposób sygnał z klawiszy, zegar wpływa na elementy pamięci (klapki)
Szeregowe oświetlenie LED za pomocą wielokolorowych diod LED: 3 kroki (ze zdjęciami)
Szeregowe oświetlenie LED przy użyciu wielokolorowych diod LED: Szeregowe oświetlenie LED nie jest tak drogie, ale jeśli jesteś miłośnikiem majsterkowania (hobbystą), tak jak ja, możesz stworzyć własne szeregowe diody LED i jest tańsze niż światło dostępne na rynku. zamierzam stworzyć własną lampę LED Serial, która będzie działać na 5 Vol
Szeregowe łącze danych RF {przez USB}: 3 kroki
Szeregowe łącze danych RF {przez USB}: TECGRAF DOC Jak przesyłać dane za pomocą taniego modułu RF przez USB. Obwód otrzymuje energię z portu USB (może zapewnić 100mA, a przy pewnym zaprogramowaniu można osiągnąć 500mA) Lista materiałów: 1 - Jedna para modułów RF (takich jak Laipac RLP/TL
Zastosowanie szeregowe, równoległy obwód akumulatora: 4 kroki
Zastosowanie szeregowe, równoległy obwód akumulatora: Jako powszechny problem, który wielu z nas prawdopodobnie miałoby z akumulatorami z przyjaznym dla środowiska sposobem ładowania (zwanym energią słoneczną), jest bardzo długi czas potrzebny do ładowania. Początkowo inspiracją dla tego obwodu było zaprojektowanie obwodu