STM32 HAL Layer Code Generator default values

OP #6928705
Lesenswert?

Hallo, ich verwende bisher ganz erfolgreich CodeIDE. Ich nutze für die 
Entwicklung den HAL Layer der im Großen und Ganzen auch ganz gut 
funktioniert. Meine Frage ist:
Immer wenn ich IOs für neue Funktionen im IOC File definiere, generiert 
mir die IDE neuen Quellcode - soweit ok. Für zwei Exti GPIO Inputs muss 
ich jedoch andere Interrupt-Prioritäten einstellen, als generiert 
werden. Bisher habe ich dann eben immer den generierten Code manuell 
geändert. Manchmal vergisst man das jedoch: Z.B.
von:
1
  /* EXTI interrupt init*/
2
  HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
3
  HAL_NVIC_EnableIRQ(EXTI0_IRQn);
4
  HAL_NVIC_SetPriority(EXTI1_IRQn, 0, 0);
5
  HAL_NVIC_EnableIRQ(EXTI1_IRQn);
geändert nach
1
  /* EXTI interrupt init*/
2
  HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0);
3
  HAL_NVIC_EnableIRQ(EXTI0_IRQn);
4
  HAL_NVIC_SetPriority(EXTI1_IRQn, 5, 0);
5
  HAL_NVIC_EnableIRQ(EXTI1_IRQn);
Gibt es eine Möglichkeit z.B. die Interrupts defaultmäßig zu ändern, das 
die gleich richtig eingestellt sind ?
Es gibt sicher die Möglichkeit über User Statements Code hinzuzufügen 
die die Interrupts dann später passend umprogrammiert, find ich aber 
irgendwie unschön.
Vielleicht hat einer eine Idee.
Gast #6928719
Lesenswert?

Der generierte Code enthält Kommentare die dir anzeigen, wo du deinen 
eigenen Code einfügen sollst. Beispiel:
1
/* USER CODE BEGIN 0 */
2

3
/* USER CODE END 0 */
1
/* USER CODE BEGIN 1 */
2

3
/* USER CODE END 1 */
1
/* USER CODE BEGIN Init */
2

3
/* USER CODE END Init */
1
/* USER CODE BEGIN SysInit */
2

3
/* USER CODE END SysInit */
1
/* USER CODE BEGIN 2 */
2

3
/* USER CODE END 2 */
1
/* USER CODE BEGIN 3 */
2
/* USER CODE END 3 */

Lass den generierten Code einfach stehen und überschreibe dessen 
Interrupt-Konfiguration darunter durch deine eigene. Du darfst das geren 
unschön finden. Für Schönheitswettbewerbe wurde Cube MX nicht gemacht.
OP #6928815
Lesenswert?

Hallo Karl,
ja hab ich irgendwie übersehen. Ich dachte man müsste die in der 
jeweiligen Section (GPIO) einstellen, aber dort sind die 
Interruptparameter disabled. In Aber in der NVIC Übersicht sind sie 
drin, und dort kann man sie auch einstellen. Und wenn mans speichert 
bleiben die auch persistent - ;-) Vielen Dank auf jeden Fall-

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