启动中断函数HAL_TIM_Base_Start_IT()

一、这是定时器中断:

前面的NVIC是我们在正常使能定时器的中断,后面的HAL_TIM_Base_Start_IT(&htim2)才是我们真正启动中断。

启动定时器的中断并不会立刻进入中断函数。它只是启动定时器并使能定时器的中断。中断函数(例如 TIM2_IRQHandler())只有在满足特定条件时才会被触发。

二、下面我将再举一个中断例子(usart的中断):

在这个usart的配置中,我们只是初始化使能中断(NVIC),并无直接启动中断HAL_UART_Transmit_IT或HAL_UART_Receive_IT。这就需要我们在外部调用了。如下图:

我们在发送数据中就是在启动发送中断了,而接收中断HAL_UART_Receive_IT是要在最开始调用的,因为我们不知道何时会接受。当第一次接受到数据,StartUART1Recv()中的HAL_UART_Receive_IT(&huart1, &g_RecvChar, 1);起了作用。之后在他都回调函数中需要重新启HAL_UART_Receive_IT(&huart1, &g_RecvChar, 1);接收中断。以便接受下一次数据。如下图:

总结:总之我们在设置初始化使能中断,就是在设置NVIC真正启用中断的是HAL_XXX_IT()这些函数。在启用之后,需要满足某些中断条件,才会调用中断服务函数USART1_IRQHandler(),之后会调用回调函数HAL_UART_RxCpltCallback()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值