RTC: Tag, Monat, Jahr lässt sich nicht auslesen bei BluePill STM32F103C8

OP #6501365
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!
Angehängte Dateien:
Gast
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.
Gast
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.
OP
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.