1、中断的认识
什么是中断?
当计算机在执行main函数中的代码时,如果中断条件满足,则保存当前的代码运行地址,跳转到另一个中断服务地址中,去执行相应的程序。
中断包括:内部中断和外部中断。其中内部中断是通过数时钟脉冲,外部中断是通过判断引脚电平边沿变化。上面对中断的认识是在51单片机上学习到的,因为51单片机中的中断只有相对重要且基础的几个,比如,定时器中断,计数器中断,还有串口中断(当发送寄存器中的数据被全部发送出去后,产生一个中断。当接受寄存器中的收满数据时,产生一个中断。在这里中断的意义可以类比两个人搬运货物,当一个人把货物送给另一个人后,才能进行接下来的搬运。那如何判断货物是否被送出去了,就需要中断是否被执行来判断)。后来学习dsp28335,发现基本上每个外设都有中断服务函数。
2、中断的配置
3.在main中添加中断服务对象
/**
* @brief EXTI line detection callbacks
* @param GPIO_Pin: Specifies the pins connected EXTI line
* @retval None
*/
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_13)
{
/* Toggle LED0 */
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_8);
}
}