stm32 hal串口中断分析

stm32 hal串口中断分析


startup_stm32f103xe.s(115) :                 DCD     USART1_IRQHandler       
USART1_IRQHandler
    HAL_UART_IRQHandler   //调用HAL库中断处理公用函数。 功能:对接收到的数据进行判断和处理  判断是发送中断还是接收中断,然后进行数据的发送和接收,在中断服务函数中使用
        /* UART in mode Receiver ---------------------------------------------------*/
        if((tmp_flag != RESET) && (tmp_it_source != RESET)) //如果接收数据,则会进行接收中断处理函数
        { 
            UART_Receive_IT(huart);
                        /*Call legacy weak Rx complete callback*/
                        HAL_UART_RxCpltCallback(huart);
        }
        /* UART in mode Transmitter ------------------------------------------------*/
        if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
        {//如果发送数据,则会进行发送中断处理函数
            UART_Transmit_IT(huart);
            return;
        }

中断调用流程:
USART1_IRQHandler(void)(中断服务函数)    
    ->    HAL_UART_IRQHandler(UART_HandleTypeDef *huart)(中断处理函数)    
        ->    UART_Receive_IT(UART_HandleTypeDef *huart) (接收函数)   
            ->    HAL_UART_RxCpltCallback(huart);(中断回调函数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alen.Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值