Das verstehe wer will...die LED tut nix.
Laut Dokumentation soll die LED leuchten, wenn PA5 HIGH-Pegel hat.
Taktversorgung ist jetzt auch drin.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <stm32f446xx.h>
void main(void) {
GPIOA->MODER |= (GPIO_MODER_MODER5_0); //A5 => Ausgang
GPIOA->OTYPER &= ~(GPIO_OTYPER_OT_5); //A5 0> Push-Pull
GPIOA->PUPDR &= ~(GPIO_PUPDR_PUPDR5); //A5 ohne Pullup-Pulldown
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; //Taktversorgung Port A
//printf("Einstellung fertig\n");
GPIOA->BSRR |= GPIO_BSRR_BS_5; //Ausgang A5 setzen
//printf("LED gesetzt\n");
while(1){
}
}
Soweit ich das sehe hab ich doch alles drin:
- A5 als Ausgang definiert (MODER 01)
- Outout-Type als Push-Pull definiert (OTYPER 0)
- Pullup/down-Widerstände abgeschaltet (PUPDR 00)
- Taktversorgung einschalten
- PA5 setzen
Danach: Über J-Link mit Target verbinden und dann Download File...
Hat jemand ne Idee was da noch fehlt?
Edit:
Es funktioniert endlich. Die Taktversorgung gehört an den Anfang. Anscheinend werden die Befehle, mit denen die GPIO-Register beschrieben werden, ohne Taktversorgung nicht ausgeführt.
Vielen Dank für die Hilfe bisher, vor allem an dich, Unregistrierter.
Lesezeichen