Gast
#4327435
Hallo, ich bin Einsteiger was STM32 betrifft und habe zu Beginn mal ein einfaches Programm mit CooCox programmiert. Es soll ein Zeichen über die RS232 Schnittstelle senden. Es sendet jedoch mit der doppelten Baudrate als ich eingestellt habe und ich verstehe nicht warum. Main.c sieht wie folgt aus: #include "stm32f4xx_hal.h" #include "stm32f4xx_hal_rcc.h" #include "stm32f4xx_hal_gpio.h" #include "stm32f4xx_hal_uart.h" int main(void) { int i=0; HAL_Init(); SystemInit(); //************ UART CONFIG *****************************// UART_HandleTypeDef uart_config; __USART1_CLK_ENABLE(); uart_config.Instance=USART1; uart_config.Init.BaudRate=9600; uart_config.Init.WordLength=UART_WORDLENGTH_8B; uart_config.Init.StopBits=UART_STOPBITS_1; uart_config.Init.Parity=UART_PARITY_NONE; uart_config.Init.Mode=UART_MODE_TX_RX; uart_config.Init.HwFlowCtl=UART_HWCONTROL_NONE; HAL_UART_Init(&uart_config); //**********************************************************// //************ UART GPIO CONFIG *********************// GPIO_InitTypeDef uart_gpio; __GPIOA_CLK_ENABLE(); uart_gpio.Pin=GPIO_PIN_9 | GPIO_PIN_10; uart_gpio.Mode=GPIO_MODE_AF_PP; uart_gpio.Pull=GPIO_NOPULL; uart_gpio.Speed=GPIO_SPEED_FAST; uart_gpio.Alternate=GPIO_AF7_USART1; HAL_GPIO_Init(GPIOA, &uart_gpio); //******************************************************// //************ LED ****************************// GPIO_InitTypeDef gpio_led; __GPIOG_CLK_ENABLE(); gpio_led.Pin=GPIO_PIN_12; gpio_led.Mode=GPIO_MODE_OUTPUT_PP; gpio_led.Pull=GPIO_NOPULL; gpio_led.Speed=GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOG, &gpio_led); //***********************************************// while(1) { HAL_GPIO_WritePin(GPIOG, GPIO_PIN_12, 0); for (i=0; i<=500000; i++); HAL_GPIO_WritePin(GPIOG, GPIO_PIN_12, 1); for (i=0; i<=500000; i++); HAL_UART_Transmit(&uart_config, "A", 1, 0x0f); } } Eine LED wird noch getoggelt, sollte aber keinen Einfluss darauf haben. Kann mir da bitte jemand weiterhelfen. Danke schonmal