static void MspInitUART2() { GPIO_InitTypeDef GPIO_InitStruct; /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* Enable GPIO TX/RX clock */ USART2_TX_GPIO_CLK_ENABLE(); USART2_RX_GPIO_CLK_ENABLE(); /* Enable USART2 clock */ USART2_CLK_ENABLE(); /*##-2- Configure peripheral GPIO ##########################################*/ /* UART TX GPIO pin configuration */ GPIO_InitStruct.Pin = USART2_TX_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; GPIO_InitStruct.Alternate = USART2_TX_AF; HAL_GPIO_Init(USART2_TX_GPIO_PORT, &GPIO_InitStruct); /* UART RX GPIO pin configuration */ GPIO_InitStruct.Pin = USART2_RX_PIN; GPIO_InitStruct.Alternate = USART2_RX_AF; HAL_GPIO_Init(USART2_RX_GPIO_PORT, &GPIO_InitStruct); }
/** * @brief UART MSP Initialization * This function configures the hardware resources used in this example: * - Peripheral's clock enable * - Peripheral's GPIO Configuration * @param huart: UART handle pointer * @retval None */ void HAL_UART_MspInit(UART_HandleTypeDef *huart) { if (huart->Instance == USART2) { GPIO_InitTypeDef GPIO_InitStruct; /*##-1- Enable peripherals and GPIO Clocks #################################*/ /* Enable GPIO TX/RX clock */ USART2_TX_GPIO_CLK_ENABLE(); USART2_RX_GPIO_CLK_ENABLE(); /* Enable USART2 clock */ __USART2_CLK_ENABLE(); /*##-2- Configure peripheral GPIO ##########################################*/ /* UART TX GPIO pin configuration */ GPIO_InitStruct.Pin = USART2_TX_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; GPIO_InitStruct.Alternate = USART2_TX_AF; HAL_GPIO_Init(USART2_TX_PORT, &GPIO_InitStruct); /* UART RX GPIO pin configuration */ GPIO_InitStruct.Pin = USART2_RX_PIN; GPIO_InitStruct.Alternate = USART2_RX_AF; HAL_GPIO_Init(USART2_RX_PORT, &GPIO_InitStruct); /* Enable RXNE interrupt */ __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE); NVIC_SetPriority(USART2_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY + 3); NVIC_EnableIRQ(USART2_IRQn); } else if (huart->Instance==USART6) { GPIO_InitTypeDef GPIO_InitStruct; /* Peripheral clock enable */ __USART6_CLK_ENABLE(); USART6_TX_GPIO_CLK_ENABLE(); USART6_RX_GPIO_CLK_ENABLE(); /* USART6 GPIO Configuration */ /* TODO: Temproray fix to disable USART6 TX pin. I made a mistake to swap the TX and RX pin for the MPU6050 module... */ GPIO_InitStruct.Pin = USART6_TX_PIN; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; //GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; //GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = 0; //USART6_TX_AF; HAL_GPIO_Init(USART6_TX_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = USART6_RX_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = USART6_RX_AF; HAL_GPIO_Init(USART6_RX_PORT, &GPIO_InitStruct); } else if (huart->Instance==USART1) { GPIO_InitTypeDef GPIO_InitStruct; /* Peripheral clock enable */ __USART1_CLK_ENABLE(); USART1_TX_GPIO_CLK_ENABLE(); USART1_RX_GPIO_CLK_ENABLE(); /* USART1 GPIO Configuration */ GPIO_InitStruct.Pin = USART1_TX_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = USART1_TX_AF; HAL_GPIO_Init(USART1_TX_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = USART1_RX_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; GPIO_InitStruct.Alternate = USART1_RX_AF; HAL_GPIO_Init(USART1_RX_PORT, &GPIO_InitStruct); } }