gd32f103 使能usart 中断
时间: 2023-06-21 10:05:35 浏览: 31
STM32F103_adc&usart.rar_STM32f103 adc中断_stm32F103 DMA串口_stm32f10
要使能 GD32F103 的 USART 中断,你需要进行以下步骤:
1. 首先,你需要使用下面的代码来启用 NVIC 的 USART 中断:
```c
NVIC_EnableIRQ(USARTx_IRQn);
```
其中,`USARTx_IRQn` 是你要使用的 USART 中断号,x 表示 USART 的编号,比如使用 USART1,则对应的中断号为 `USART1_IRQn`。
2. 然后,你需要使用下面的代码来启用 USART 的中断:
```c
USART_INTConfig(USARTx, USART_INT_RDNE, ENABLE);
```
其中,`USARTx` 是你要使用的 USART 设备,比如使用 USART1,则对应的设备为 `USART1`。`USART_INT_RDNE` 表示接收缓冲区非空中断(Receive Data Not Empty Interrupt)。`ENABLE` 表示启用中断,如果要禁用中断,则可以使用 `DISABLE`。
3. 最后,你需要在中断服务函数中进行相应的处理,比如读取接收到的数据等。
```c
void USARTx_IRQHandler(void)
{
if(USART_GetITStatus(USARTx, USART_INT_FLAG_RDNE) != RESET)
{
// 处理接收到的数据
uint16_t data = USART_ReceiveData(USARTx);
// 清除中断标志位
USART_ClearITPendingBit(USARTx, USART_INT_FLAG_RDNE);
}
}
```
其中,`USARTx_IRQHandler` 是你要使用的 USART 中断服务函数,x 表示 USART 的编号,比如使用 USART1,则对应的中断服务函数为 `USART1_IRQHandler`。在服务函数中,先判断是否是接收缓冲区非空中断,如果是,则处理接收到的数据,并清除中断标志位。
阅读全文