码迷,mamicode.com
首页 > 其他好文 > 详细

stm32的串口中断

时间:2018-05-18 14:24:28      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:lag   col   get   art   res   oid   its   hand   ...   

 

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的串口中断

标签:lag   col   get   art   res   oid   its   hand   ...   

原文地址:https://www.cnblogs.com/chulin/p/9055361.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!