Inhoudsopgave:
Video: Seriële foutopsporing met CloudX: 3 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
In dit project wil ik het concept van debuggen via de seriële terminal uitleggen. Maar laten we eerst als starter het concept uitleggen aan de hand van zijn betekenissen.
1. seriële communicatie
seriële communicatie is voor communicatie tussen het CloudX-bord en een computer of andere apparaten. Alle CloudX-kaarten hebben minimaal één seriële poort (ook wel UART of USART genoemd): Serieel. Het communiceert op digitale RX- en TX-pin met andere hardware of seriële communicatiemodules (zoals gsm en gps) zoals met de computer via USB met behulp van de SoftCard. Als u deze functies gebruikt, kunt u dus niet ook TX en RX gebruiken voor digitale invoer of uitvoer. U kunt de ingebouwde seriële monitor van de CloudX-omgeving gebruiken om te communiceren met een CloudX-bord. Klik op de seriële monitorknop in de werkbalk en selecteer dezelfde baudrate die wordt gebruikt in de parameter die aan serialBegin() wordt aangeroepen.
2. Foutopsporing:
Debugging betekent eenvoudigweg fouten identificeren en verwijderen uit (computerhardware of -software). Debugging omvat het lokaliseren en corrigeren van codefouten in een computerprogramma. Debuggen maakt deel uit van het softwaretestproces en is een integraal onderdeel van de gehele levenscyclus van softwareontwikkeling. Laten we bijvoorbeeld aannemen dat uw code succesvol is gecompileerd en dat u uw hardware aan het testen bent en dat het niet werkt zoals verwacht, hoewel er veel manieren zijn om uw code te debuggen; een eenvoudige en effectieve manier om het te debuggen is door het gebruik van seriële debugging. De CloudX IDE genereert 2 soorten bestanden bij succesvolle compilatie, HEX- en COFF-bestand. Het HEX-bestand is strikt machinecode, wat in het bord wordt geladen voor uitvoering in de echte wereld, maar kan ook worden uitgevoerd op uw pc-simulatiesoftware zoals Proteus Isis, terwijl het COFF-bestand een leesbaar formaat is dat kan worden uitgevoerd op uw pc-simulatiesoftware (Proteus Isis). Voor deze scope zullen we twee basistypes van debuggen op serieel protocol beschouwen,
1. Zachte seriële foutopsporing:
Bij deze methode wordt elke test en foutopsporing op de pc uitgevoerd via een aantal handige software zoals Proteus ISIS. Omdat de CloudX in feite een COFF-bestand genereert, raad ik aan dit te gebruiken voor pc-simulatie, omdat je hiermee in principe tussen regels met codes kunt stappen en kunt achterhalen waar een probleem vandaan komt, en als je code moet worden uitgevoerd zonder te stappen, met behulp van virtuele teminal van de "virtuele instrumentmodus", kunt u altijd weten waar de regeleenheid op een bepaald moment loopt. laten we eens kijken naar dit codevoorbeeld,
Stap 1:
/*
* Bestand: newmain.c
* Auteur: OGBOYE GODWIN * * Gemaakt op 28 juni 2018, 10:15 uur */
#erbij betrekken
#erbij betrekken
/* we zullen maken
rood pin1 groen pin2 geel pin3 * knop pin4 */ char *tell= "hmmm, ik ben aangeraakt"; setup(){ pinMode(1, OUTPUT); pinMode(2, UITGANG); pinMode (3, UITGANG); pinMode (4, INGANG); Serial_begin (9600); loop(){ while(!readPin(4)); Serial_writeText (vertellen); Serial_writeText("….verhuizen naar rood"); Serial_write (0x0D); portWrite(1, 0x00); pinSelect(1, HOOG); vertragingen (200); // probeer alle vertragingen van commentaar te verwijderen en kijk wat er gebeurt // vervang ze dan (je zult het zeker leuk vinden!). while(!readPin(4)); Serial_writeText (vertellen); Serial_writeText("….verhuizen naar groen"); Serial_write (0x0D); portWrite(1, 0x00); pinSelect(2, HOOG); vertragingen (200); // probeer alle vertragingen van commentaar te verwijderen en kijk wat er gebeurt // vervang ze dan (je zult het zeker leuk vinden!).
while(!readPin(4));
Serial_writeText (vertellen); Serial_writeText("….verhuizen naar geel"); Serial_write (0x0D); portWrite(1, 0x00); pinSelect (3, HOOG); vertragingen (200); // probeer alle vertragingen van commentaar te verwijderen en kijk wat er gebeurt // vervang ze dan (je zult het zeker leuk vinden!). } }
hiermee kun je zien hoe de seriële debugging belangrijk is als je de vertragingen verwijdert. als je dat deed, zou je hebben gezien hoe lastig die eenvoudige code kan veroorzaken als het in de echte wereld wordt uitgevoerd zonder die vertragingen.
Stap 2:
2. Hardware-foutopsporing:
Bij deze methode wordt elke test en foutopsporing gedaan door het CloudX-prototypebord aan de pc te bevestigen met behulp van de softCard en gebruik te maken van de seriële terminal van CloudX IDE (aanbevolen) of een andere nuttige software zoals Proteus ISIS compim, realTerm, enz. Genereer COFF bestand kan hier niet worden gebruikt omdat deze methode vereist dat HEX wordt opgestart in de hardware, ik raad aan dit te gebruiken voor CloudX-softcard. Merk op dat uw code zonder stappen wordt uitgevoerd, zodat u altijd kunt weten waar de regel is dat de controller op een bepaald moment wordt uitgevoerd door de seriële uitgang. laten we deze code eens bekijken, hetzelfde voorbeeld hierboven vermeld, stel uw hardware zo in dat deze vergelijkbaar is met die van rode LED --------- naar pin1 groene LED --------- pin2 gele LED -- ------- pin3 knop --------- pin4
Stap 3:
stappen
1. Gebruik dezelfde code als hierboven
2. bootload naar je bord
3. start de CloudX seriële terminal door op de knop "serieel" in de werkbalk te klikken
4. selecteer de gewenste poort en baudrate (9600 in deze tutorial)
5.start de terminal door op verbinden te klikken (verbreek de verbinding als u wilt stoppen)
6. met de poort geopend/aangesloten, drukt u naar believen kort op de knop en u ziet de seriële uitgang op de terminalvensters. Merk op dat als je de vertragingen van de code hebt, je meerdere regels seriële uitvoer zo snel en ongecontroleerd binnen krijgt voordat je je handen van de knop haalt. Als je om welke reden dan ook in je code een dergelijk of soortgelijk probleem hebt, kun je altijd deze methode gebruiken om fouten op te sporen.
Aanbevolen:
Het probleem met de Mac Lilypad USB-seriële poort/stuurprogramma oplossen: 10 stappen (met afbeeldingen)
De Mac Lilypad USB seriële poort/stuurprogramma oplossen Probleem: is uw Mac vanaf 2016 minder dan 2 jaar oud? Hebt u onlangs een upgrade uitgevoerd naar het nieuwste besturingssysteem (Yosemite of iets nieuwer)? Werken uw Lilypad USB's/MP3's niet meer? Mijn tutorial zal je laten zien hoe ik mijn Lilypad USB's heb gerepareerd. De fout die ik tegenkwam was gerelateerd
Standalone Arduino 3.3V W / externe 8 MHz klok wordt geprogrammeerd vanaf Arduino Uno via ICSP / ISP (met seriële bewaking!): 4 stappen
Standalone Arduino 3,3 V met externe 8 MHz-klok die wordt geprogrammeerd vanaf Arduino Uno via ICSP / ISP (met seriële bewaking!): Doelstellingen: een stand-alone Arduino bouwen die op 3,3 V van een externe klok van 8 MHz draait. Om het te programmeren via ISP (ook bekend als ICSP, in-circuit serieel programmeren) vanaf een Arduino Uno (draaiend op 5V) Om het bootloader-bestand te bewerken en de
HackerBox 0049: Foutopsporing - Ajarnpa
HackerBox 0049: Debug: groeten aan HackerBox-hackers over de hele wereld! Voor HackerBox 0049 experimenteren we met het debuggen van digitale microcontrollersystemen, het configureren van het LOLIN32 ESP-32 WiFi Bluetooth-platform binnen de Arduino IDE, het toepassen van de FastLED Animation L
Basis Java-foutopsporing: 9 stappen
Basic Java Debugging: Deze instructiegids behandelt een eenvoudige stapsgewijze controle voor Java-foutafhandeling. Deze handleiding biedt geen hulp bij het instellen van Java-programmeersoftware en verwacht dat u deze taak al van tevoren hebt voltooid. Voor het beste
De stappen servomotor inkapselen met seriële besturing via Arduino met behulp van een 3D-printer - PT4 - Ajarnpa
De stappenservomotor inkapselen met seriële besturing via Arduino met behulp van een 3D-printer - Pt4: in deze vierde video van de Motor Step-serie zullen we gebruiken wat we eerder hebben geleerd om een stappenservomotor te bouwen met besturing via seriële communicatie en echte positieterugkoppeling met behulp van een resistieve encoder die wordt bewaakt door een Arduino. In