UART mit stm32f030f4, HAL Lib und eigenem Makefile - Problem

Gast #4076602
Lesenswert?

Hallo Forummitglieder,

Ich versuch mich, nachdem ich ein wenig mit AVRs gespielt habe, in die 
STM32 Arms und der HAL Lib einzuarbeiten. Jetzt hat ich schon anfägliche 
Erfolgsergebnisse mit GPIO, aber mit dem UART hab ich einfach kein 
Glück. Ich hab dank den mitgelieferten Beispielen und der Dokumentation 
das Folgende Beispiel zusammengeschraubt:
1
uint8_t aTxBuffer[] = "Hello World \n";
2
GPIO_InitTypeDef GPIO_InitStruct;
3
UART_HandleTypeDef UartHandle;
4

5
int main(void) {
6
    HAL_Init();
7

8
    /* initialize the Clock */
9
    SystemClock_Config();  //Hier passiert nichts
10

11
    /* -1- Enable each GPIO Clock (to be able to program the configuration registers) */
12
    __GPIOA_CLK_ENABLE();
13
    /* -2- Configure IOs in output push-pull mode to drive external LEDs */
14
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
15
    GPIO_InitStruct.Pull = GPIO_PULLUP;
16
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
17
    GPIO_InitStruct.Pin = GPIO_PIN_4;
18
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
19

20
    /* -5- Configure the UART peripheral */
21
    UartHandle.Instance = USART1;
22
    UartHandle.Init.BaudRate = 4800;
23
    UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
24
    UartHandle.Init.StopBits = UART_STOPBITS_1;
25
    UartHandle.Init.Parity = UART_PARITY_NONE;
26
    UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
27
    UartHandle.Init.Mode = UART_MODE_TX;
28
    UartHandle.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
29
    HAL_UART_DeInit(&UartHandle);
30
    HAL_UART_Init(&UartHandle);
31
    __USART1_CLK_ENABLE();
32

33
    /* -7- Configure TX GPIO */
34
    GPIO_InitStruct.Pin = GPIO_PIN_2;
35
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
36
    GPIO_InitStruct.Pull = GPIO_PULLUP;
37
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
38
    GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
39
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
40

41
    while (1) {
42
        HAL_UART_Transmit(&UartHandle, (uint8_t *) aTxBuffer, 12, 50000);
43
        HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_4);
44
    }
45
}
Jetzt hab ich das Problem, das die LED an PA4 Blinkt, aber an PA2 
einfach nichts raukommt (auch mit Scope). Kann mir irgendjemand 
weiterhelfen? Ich hab keine Ahnung was ich falsch machen könnte . Im 
Anhang ist mein komplettes Verzeichnis.

Danke
Angehängte Dateien:
Gast #4076630
Lesenswert?

Das hat auch nichts gebracht:
1
    /* -6- Enable USART1 Clock */
2

3
    __USART1_CLK_ENABLE();
4

5
    /* -5- Configure the UART peripheral */
6
    /* Put the USART peripheral in the Asynchronous mode (UART Mode) */
7
    /* UART configured as follows:
8
        - Word Length = 8 Bits
9
        - Stop Bit = One Stop bit
10
        - Parity = None
11
        - BaudRate = 9600 baud
12
        - Hardware flow control disabled (RTS and CTS signals) */
13
    UartHandle.Instance = USART1;
14
    UartHandle.Init.BaudRate = 4800;
15
    UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
16
    UartHandle.Init.StopBits = UART_STOPBITS_1;
17
    UartHandle.Init.Parity = UART_PARITY_NONE;
18
    UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
19
    UartHandle.Init.Mode = UART_MODE_TX;
20
    UartHandle.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
21
    HAL_UART_DeInit(&UartHandle);
22
    HAL_UART_Init(&UartHandle);

Andere Vorschläge?
Gast #4078137
Lesenswert?

Ok, habs jetzt zum laufen gebracht --> Das eine IC Beinchen beim stm32 
hatte keinen Kontakt zur Adapterplatine.

Man muss aber auch erstmal die UART1 Clock anschalten befor man 
Initialisiert.

Danke tourboj

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