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