PC13 Konflikt mit RTC Clock auf STM32F103

OP #7371823
Lesenswert?

(STM32CubeIDE) Habe gerade festgestellt, daß in einem kleinen STM32F103 Testprogramm, in dem ich auch die RTC-LSE Clock eingeschaltet habe, plötzlich nach ein paar Sekunden die onboard LED anging und dauerhaft anbleibt.

Habe mal danach gesucht und fand, daß man

1
hrtc.Init.Output = RTC_OUTPUTSOURCE_NONE; // it's important to set this to none

setzen muß.

Jetzt sieht das im Code so aus:

1
static void MX_RTC_Init(void)
2
{
3

4
  /* USER CODE BEGIN RTC_Init 0 */
5

6
  /* USER CODE END RTC_Init 0 */
7

8
  /* USER CODE BEGIN RTC_Init 1 */
9

10
  /* USER CODE END RTC_Init 1 */
11

12
  /** Initialize RTC Only
13
  */
14
  hrtc.Instance = RTC;
15
  hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND;
16
  hrtc.Init.OutPut = RTC_OUTPUTSOURCE_NONE;
17
                                    //^^^^^^\\
18
  if (HAL_RTC_Init(&hrtc) != HAL_OK)
19
  {
20
    Error_Handler();
21
  }
22
  /* USER CODE BEGIN RTC_Init 2 */
23

24
  /* USER CODE END RTC_Init 2 */
25

26
}

Jedesmal, wenn ich nun im .ioc etwas editiere und abspeichere, wird diese Stelle wieder zurückgesetzt auf:

1
hrtc.Init.OutPut = RTC_OUTPUTSOURCE_AUTO;

Wie kann ich verhindern, daß das jedesmal zurückgesetzt wird, wenn ich am .ioc etwas ändere?

OP #7371943
Lesenswert?

Εrnst B. schrieb:

Christoph K. schrieb:

Wie kann ich verhindern, daß das jedesmal zurückgesetzt wird, wenn ich am .ioc etwas ändere?

Eigenen Code nur in die "USER CODE BEGIN/ENDE"-Blöcke schreiben, da ist er "sicher".

Das hatte ich auch mir so vorgestellt, aber dann hätte ich erst eine generierte Zeile gehabt und anschließend hätte ich die durch eine eigene Zeile widerrufen. Fand ich nicht so elegant.

Das "NO RTC OUTPUT" hat es jetzt gebracht. Ich hatte es auf "DISABLED" stehen.

EDIT: Hat's doch nicht gebracht. Ich muß es auf DISABLED stellen, sonst läuft mein SPI1 nicht und es wird in RTC_Init noch zusätzlicher Code erteugt, der evtl. stört oder den ich nicht brauche.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren