stm32的串口中断

Posted GXTon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32的串口中断相关的知识,希望对你有一定的参考价值。

 

void USART1_IRQHandler(void)                                                              //串口中断
{
    if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET)           //USART1接收中断,,,
    {    
        uart1_rx_buf[uart1_rx_RecvIndex] = USART1->DR;
        uart1_rx_RecvIndex++;
        if(uart1_rx_RecvIndex > 3)
        {
             uart1_rx_RecvIndex = 4;
             Uart1_RS232_SendString(uart1_rx_buf,4);
        }
        //uart1_rx_RecvOvertimeCnt = 0;
        //uart1_rx_RecvFlag = 1;
    }

    if(USART_GetITStatus(USART1,USART_IT_TXE) != RESET)               //USART1发送中断
    {
        if(uart1_tx_SendIndex < uart1_tx_SendLength)              
        {
            USART1->DR = uart1_tx_buf[uart1_tx_SendIndex]&0x01FF;
            uart1_tx_SendIndex++;
        }
        else
        {
            uart1_tx_SendIndex = 0;            
            USART_ITConfig(USART1, USART_IT_TXE, DISABLE);         //关闭发送中断        ,,, 这种方式是判断 寄存器是否为空,,,为空就会进入中断,,,,

                                                                                                            //所以用完之后就关中断   ,,,至于它的打开,,是在主函数中进行的....
        }
    }
}

以上是关于stm32的串口中断的主要内容,如果未能解决你的问题,请参考以下文章

stm32h750串口发送中断关掉

stm32如何启动串口中断

stm32 开启接收中断 PC 发送两次 为啥串口只接收到一次

STM32HAL 串口发送(中断方式)

stm32串口中断,只能接首字母(一个),接不到其它字符?怎么解决

STM32L051低功耗STOP模式串口中断唤醒