Начал знакомиться с STM32CubeMx, возможности впечатляют, но в первые же дни использования нашелся серьезный баг!
Создаю проект для STM32F103C8T6, включаю USART1 в кубе, генерируется код с инициализацией USART, но нет инициализации портов GPIO PA9 и PA10:
/** * @brief USART1 Initialization Function * @param None * @retval None */ static void MX_USART1_UART_Init(void) { /* USER CODE BEGIN USART1_Init 0 */ /* USER CODE END USART1_Init 0 */ /* USER CODE BEGIN USART1_Init 1 */ /* USER CODE END USART1_Init 1 */ huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN USART1_Init 2 */ /* USER CODE END USART1_Init 2 */ } /** * @brief GPIO Initialization Function * @param None * @retval None */ static void MX_GPIO_Init(void) { /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOA_CLK_ENABLE(); }
Инициализация GPIO генерируется в файле stm32f1xx_hal_msp.c, функция:
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
😆 facepalm ) Извиняюсь за глупый вопрос, в HAL_UART_MspInit все есть)