HAL库的中断执行步骤--2017-8-30

这里简单介绍一下在HAL库中的中断执行步骤

以stm32f103的uart接收中断为例。

首先,在主函数中,用户调用中断函数HAL_UART_Receive_IT(&huart2,&RxData,1)(来自HAL库中的UART外设库),在该函数中,为huart结构体赋值,包括RxData的地址等等,然后加上一个标志位,“表明”开启了中断

    if(huart->State == HAL_UART_STATE_BUSY_TX)
    {
      huart->State = HAL_UART_STATE_BUSY_TX_RX;
    }
    else
    {
      huart->State = HAL_UART_STATE_BUSY_RX;
    }

其中HAL_UART_STATE_BUSY_RX与HAL_UART_STATE_BUSY_TX_RX是置位后的标志位,这个标志位用于后面判断主程序是否“开启”了中断(这里的“开启”表示需要开启的意思)。最后结束。

然后,当中断发生后,硬件置位相关位,程序跳转到USART2_IRQHandler(void)中断服务函数

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值