Vraag:
Waarom herstart het starten van de seriële monitor de schets?
Cybergibbons
2014-02-26 04:51:03 UTC
view on stackexchange narkive permalink

Als ik een schets upload die seriële gegevens verzendt, zie ik onmiddellijk de TX / RX-leds knipperen zodra de schets is geüpload. Als ik dan de seriële monitor start, lijkt de sketch opnieuw op te starten.

Een absoluut minimum sketch die dit gedrag laat zien:

  void setup () {Serial.begin (9600 ); Serial.println ("Setup");} void loop () {Serial.println ("Loop"); delay (1000);}  

Getest met verschillende kaarten en Mac- en Windows-versies van de IDE.

Voorbeelduitvoer - het gaat terug naar "Setup" wanneer ik open de seriële monitor:

Restart

Waarom is dit?

Ik heb nog nooit een schets gezien die serie gebruikt, doe dit niet, dus letterlijk elke schets.
Gerelateerd: * [Arduino seriële poort gereset in seriële monitor en Python] (http://arduino.stackexchange.com/questions/640) *
Dupliceren: * [Waarom lijkt mijn Arduino elke keer opnieuw op te starten als ik Serial Monitor open?] (Http://arduino.stackexchange.com/questions/4078) *
Ik heb een apart probleem. De Arduino leostick (en anderen) worden niet meer automatisch gereset. Hoe kan ik het hernoemen?
Drie antwoorden:
#1
+35
sachleen
2014-02-26 06:02:20 UTC
view on stackexchange narkive permalink

De Arduino gebruikt de RTS (Request To Send) (en ik denk DTR (Data Terminal Ready)) signalen om automatisch te resetten. Als je een seriële terminal krijgt waarmee je de flow control-instellingen kunt wijzigen, kun je deze functionaliteit wijzigen.

De Arduino-terminal geeft je niet veel opties en dat is de standaard. Met andere kun je nog veel meer configureren. Als u de stroomregeling op geen instelt, kunt u verbinding maken met / loskoppelen van de serie zonder uw kaart te resetten. het is heel handig voor foutopsporing als je gewoon de connector wilt kunnen aansluiten en de uitvoer wilt zien zonder de schets opnieuw te hoeven beginnen.

Een andere manier om de automatische reset uit te schakelen, is door een optrekweerstand te plaatsen op de reset-pin.

Automatisch resetten uitschakelen bij seriële verbinding

Arduino Unos kunnen worden opgelost met een 10 µF condensator over RESET en GND. Het werkt voor de enige installatie waarvoor ik het tot nu toe heb gebruikt ...
Ik heb geprobeerd om [PuTTY] (http://en.wikipedia.org/wiki/PuTTY) te gebruiken, verbinding te maken met de COM-poort waarop de Arduino verschijnt (COM16 in mijn geval). De Arduino wordt nog steeds gereset als "Flow control" in Connection / Serial is ingesteld op "None" (de andere opties zijn "XON / XOFF", "RTS / CTS" en "DSR / DTR"). Ik heb versie 0.60 van PuTTY gebruikt.
-cont: Het is geprobeerd op een Arduino Uno R3.
De Duemilanove en Uno hebben een trace met het label "EN RESET" die dit gedrag regelt. Kras dat spoor weg om auto-reset uit te schakelen. Soldeer een draad over de pads om deze weer in te schakelen.
#2
+13
zmo
2014-03-02 04:24:13 UTC
view on stackexchange narkive permalink

De waarheid zit altijd in de datasheets, de schema's en de code:

De Arduino UNO gebruikt eigenlijk de / DTR -regel om een ​​reset uit te voeren, zoals je kunt zien op het volgende gegevensblad:

reset schematic

De link naar uw schematische afbeelding is verbroken.
Bedankt, ik heb het opgelost! Ik dacht eigenlijk dat SO afbeeldingen in het cachegeheugen aan het opslaan was, maar het lijkt erop dat dit niet zo is, dus ik zorg ervoor dat ik het altijd aan laat staan.
Nogmaals, het is gebroken. Misschien kunt u het als afbeelding toevoegen met behulp van de imgur-optie van StackExchange? Klik gewoon op de optie 'afbeelding' in de werkbalk van de editor.
klaar, bedankt voor de tip (ik had mijn eigen site eigenlijk 10 dagen offline omdat ik wat onderhoud aan het doen was, wat maar tijdelijk was)
Ja, maar wat gebeurt er eigenlijk? Is het te wijten aan de manier waarop de ATmega16U2 is geprogrammeerd (PD7 laag beweren wanneer een COM-poort wordt geopend door een programma?)? Of een standaard volgen voor DTR?). En wat is de implicatie van C5? - zal het de hoofdprocessor resetten voor beide overgangen (laag naar hoog en hoog naar laag)? Wat is de geschatte pulsbreedte (in microseconden) op de reset-pin van de hoofdprocessor en hoe ziet deze eruit?
OK, ik heb de puls geregistreerd bij RESET bij seriële verbinding: [https://i.stack.imgur.com/KV4Oa.png ](https://i.stack.imgur.com/KV4Oa.png). U kunt het in uw antwoord gebruiken.
Hoe is dit een antwoord? Wat we veronderstellen te doen met deze informatie ????
Hey jongens, betekent dit dat ik deze draad moet doorknippen?
als dat is wat je wilt, ja :)
Wat kan RESET-EN doen? Waarom is het daar? Het lijkt geen effect te hebben (lijkt te zijn kortgesloten). Of is het een fout in het schema? Wat is de verklaring? Kunt u in uw antwoord uitweiden (dit en andere punten)?
Het doet eigenlijk niets, zoals je kunt zien aan de schema's. De reden dat het daar is, is dat je de DTR-lijn tussen de RESET-EN-poten kunt doorsnijden om automatische reset uit te schakelen, en als je het opnieuw wilt inschakelen, dan kun je de twee RESET-EN-pads aan elkaar solderen.
#3
  0
Julian Lewis
2016-05-13 23:17:18 UTC
view on stackexchange narkive permalink

Dit lost het probleem op

  import osimport sysimport termiosimport fcntl self.fd = sys.stdin.fileno () # Stop met het resetten van de arduino op seriële verbinding self.newattr = termios.tcgetattr (self .fd) self.newattr [2] = self.newattr [2] & ~ termios.HUPCL termios.tcsetattr (self.fd, termios.TCSANOW, self.newattr)  


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...