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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.