HAL_UART_MspDeInit
时间: 2023-06-21 20:18:24 浏览: 446
`HAL_UART_MspDeInit` 是HAL库中UART外设的底层驱动函数之一,用于反初始化UART外设对应的硬件资源,释放占用的IO口、中断等资源,以便后续的初始化或其他操作能够正常进行。这个函数需要在HAL_UART_DeInit函数调用前调用。
以下是 `HAL_UART_MspDeInit`函数的示例代码:
```c
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
{
if(uartHandle->Instance==USART2) // 判断是哪个UART外设
{
/* Peripheral clock disable */
__HAL_RCC_USART2_CLK_DISABLE(); // 关闭USART2时钟
/**USART2 GPIO Configuration
PA2 ------> USART2_TX
PA3 ------> USART2_RX
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3); // 反初始化GPIO口
/* USART2 interrupt Deinit */
HAL_NVIC_DisableIRQ(USART2_IRQn); // 关闭USART2中断
}
}
```
在这个示例代码中,我们首先判断了传入的UART外设是否是USART2,然后分别关闭了USART2外设的时钟,反初始化了对应的GPIO口,以及关闭了USART2对应的中断。如果有其他的UART外设需要反初始化,可仿照上述代码进行修改。
阅读全文