/** * @file stm32f4xx_hal_msp.c * @brief STM32 HAL 底层初始化实现。 * @version 2.0 * @author zengbingjie * @date 2026-07-29 * @copyright 版权所有 (c) 2026 Xinje Electric。 * @note 修改记录:2.0 配置 USART1 的 Modbus RTU 引脚和中断。 */ #include "main.h" /** * @brief 初始化全局 MSP 资源。 */ void HAL_MspInit(void) { __HAL_RCC_SYSCFG_CLK_ENABLE(); __HAL_RCC_PWR_CLK_ENABLE(); } /** * @brief 初始化 USART1 时钟、引脚和中断。 * @param[in] uartHandle 待初始化的 UART 句柄。 */ void HAL_UART_MspInit(UART_HandleTypeDef *uartHandle) { GPIO_InitTypeDef gpioConfig = {0}; if ((uartHandle == NULL) || (uartHandle->Instance != USART1)) { return; } __HAL_RCC_USART1_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); gpioConfig.Pin = GPIO_PIN_9 | GPIO_PIN_10; gpioConfig.Mode = GPIO_MODE_AF_PP; gpioConfig.Pull = GPIO_NOPULL; gpioConfig.Speed = GPIO_SPEED_FREQ_HIGH; gpioConfig.Alternate = GPIO_AF7_USART1; HAL_GPIO_Init(GPIOA, &gpioConfig); HAL_NVIC_SetPriority(USART1_IRQn, 6U, 0U); HAL_NVIC_EnableIRQ(USART1_IRQn); }