stm32f103c8t6外部中断实验

中断就是cpu在执行程序时,有其他事件需要占用cpu,cpu接收到这个中断请求后暂停原程序的执行,去执行中断函数,中断函数执行完成之后,继续回到原来的程序继续执行。

c8t6每个GPIO都可以产生中断,中断线有16个,中断服务函数最多有6个。

19个中断检测沿,16个中断线对应最多16个中断,但是cpu一次只能处理一个事件,所以就要对这些中断进行优先级排序。

中断线 0-4 每个中断线对应一个中断函数,中断线 5-9 共用中断函数 EXTI9_5_IRQHandler,中断线 10-15 共用中断函数 EXTI15_10_IRQHandler

ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);
这个函数一般使用在中断服务函数的开头判断中断是否发生。

另一个函数是清除某个中断线上的中断标志位:
void EXTI_ClearITPendingBit(uint32_t EXTI_Line);
这个函数一般应用在中断服务函数结束之前,清除中断标志位

使用 IO 口外部中断的一般步骤:
1)初始化 IO 口为输入。
2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。
3)初始化线上中断,设置触发条件等。
4)配置中断分组(NVIC),并使能中断。
5)编写中断服务函数。

你可能感兴趣的:(stm32,单片机,arm)