Hallo Leser, ich verwende: - BluePill STM32F103C8 mit Uhrenquarz und Back-Up-3V-Batterie - Arduino 1.8.13 (portabel installiert) - Habe über https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json die offizielle STM32duino-Erweiterung von ST installiert (Boardverwalter: STM32 Cores) - Verwende STM32CubeProgrammer und einen ST-Link V2 zum Flashen - Library "STM32duino RTC": #include <STM32RTC.h> - Beispiel -> STM32duino RTC -> SimpleRTC.ino - Mit dieser eingefügten Zeile läuft die Uhrzeit auch ohne Versorgungsspannung weiter: rtc.setClockSource(STM32RTC::LSE_CLOCK); // LSE ist fuer externen Uhrenquarz mit 32.768 kHz Sie steht vor dieser Zeile: rtc.begin(); // initialize RTC 24H format Mein Problem: - Das Original-Beispiel mit Zusatzzeile funktioniert und setzt die Daten. Ausgabe: 15/06/15 16:00:06 - Wenn ich dann das Setzen auskommentiere, wird die richtige Uhrzeit ausgegen (Stunde bis Sekunde): - ABER die Daten Tag, Monat, Jahr stimmen nicht: Ausgabe: 01/01/00 16:01:19 Durch eine Internet-Recherche habe ich gesehen, dass auch andere das Problem hatten. Durch vertauschen der Abfrage von Datum und Uhrzeit ließ es sich beheben. Es wurde auch von Schattenregistern berichtet. Die Vorschläge haben mir leider nicht weiter geholfen. Hat jemand eine Lösung für mich? Vielen Dank fürs Mitdenken!
Statt in den (Un-) Tiefen des Internet herum zu suchen, wäre es besser, die Doku zu konsultieren. Schattenregister gibt's bei F10X nicht, die kamen erst später dazu. Der Schlüssel ist vermutlich das RSF bit, s. 18.3.3 im RM0008. Nach der kleinen zusätzliche Verzögerung ist es dann gerade schon gesetzt.
Da die RTC des STM32F103 eigentlich nur ein 32bit Zähler ohne Kalender ist, vermute ich einen Fehler im Algorithmus deiner Bibliothek. Probiere mal das folgende Beispiel mit unterschiedlichen Integer-Werten aus. Danach weißt du wenigstens mit Sicherheit, ob die Hardware OK ist. Bei den vielen Fälschungen, die im Umlauf sind kann man da ja nicht mehr sicher sein. http://stefanfrings.de/stm32/stm32f1.html#rtc Die Zeilen, die mit "Wait until..." kommentiert sind, haben mit den Schattenregistern zu tun.
Hallo A. B., hallo Stefan, vielen, vielen Dank für Eure Antworten. Ich habe das Refence Manual studiert und auch Stefans Seite. Ich bin erschrocken, dass meine Vorlage - Library "STM32duino RTC": #include <STM32RTC.h> - Beispiel -> STM32duino RTC -> SimpleRTC.ino offensichtlich nie getestet wurde. Nach Verwendung einer anderen Library funktioniert alles problemlos.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.