void USART1_IRQHandler(void) //串口USART1中断服务程序 { if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)//接受中断数据,判断是否因为USART1接受到了数据产生的中断 { RxBuffer1[RxCounter1++] = USART_ReceiveData(USART1);//读取接收到的数据 if(RxCounter1 == NbrOfDataToRead1) { USART_ITConfig(USART1, USART_IT_RXNE, DISABLE); } } if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET) { USART_SendData(USART1, TxBuffer1[TxCounter1++]); if(TxCounter1 == NbrOfDataToTransfer1) { USART_ITConfig(USART1, USART_IT_TXE, DISABLE); } } }
时间: 2023-06-08 21:06:05 浏览: 133
USART_IRQ中断程序
这是一段关于串口USART1的中断服务程序的代码。其中,如果USART1接收到数据,那么就会将数据读取到RxBuffer1中。如果读取的数据个数达到了NbrOfDataToRead1,则会关闭USART1的接收中断。另外,如果USART1发送缓冲区为空,并且TxCounter1小于NbrOfDataToTransfer1,那么程序会将TxBuffer1中的数据发送出去,并关闭发送中断。
阅读全文