苏州市吴中区住房和城乡建设局网站,想建设一个网站,优秀的网站通过什么提供信息,广州市网站建站本文代码使用 HAL 库。 文章目录前言一、什么是外部中断#xff1f;二、外部中断中断线三、STM32F103的引脚复用四、相关函数#xff1a;总结前言 一、什么是外部中断#xff1f;
外部中断 是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时#xff0c;单片… 本文代码使用 HAL 库。 文章目录前言一、什么是外部中断二、外部中断中断线三、STM32F103的引脚复用四、相关函数总结前言 一、什么是外部中断
外部中断 是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时单片机的中断系统将迫使CPU暂停正在执行的程序转而去进行中断事件的处理中断处理完毕后又返回被中断的程序处继续执行下去. 外部中断 是指由 外部设备 发出的 中断请求 如键盘、鼠标、计时器、网络数据等。外部中断可以提高系统的效率使系统能够有效地处理外部设备发出的中断请求从而改善系统的性能。 二、外部中断中断线
外部中断共有 20 条中断线。
从下图可以看出PA0、PB0…PG0 共用的 EXTI0 中断线PA1、PB1…PG1共用的 EXTI1 中断线也就是 编程里面的如下图库文件对应 16 个中断线。
112 个引脚被分成了16个 外部中断线不同组的同一个引脚号连接到同一个外部中断线上。
后面三个是专用的中断线
外部中断线 EXTI16 连接到 PVD 输出.外部中断线 EXTI17 连接到 RTC 警告事件.外部中断线 EXTI18 连接到 USB 唤醒事件.外部中断线 EXTI19 连接到 ETH 唤醒事件.只有在内部有ETH模块的设备才会有这条线 三、STM32F103的引脚复用
GPIO 的中断是以组位一个单位的同组间的外部中断同一时间只能使用一个。比如说PA0PB0PC0PD0PE0PF0PG0这些为1组如果我们使用PA0作为外部中断源那么别的就不能够再使用了在此情况下我们只能使用类似于PB1PC2这种末端序号不同的外部中断源。 以 AFIO_EXTICR1 为例 ① AFIO_EXTICR1有32位只有低16位可以设置值高16位是保留位。 ②它可以配置4跟外部中断线每4位控制一根外部中断线. ③ 对于某一根外部中断线同一时刻只能选择一组GPIO的引脚作为外部中断输入引脚. 四、相关函数
设置外部中断的优先级
HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority);使能外部中断
HAL_NVIC_EnableIRQ(IRQn_Type IRQn);外部中断服务函数
void EXTI1_IRQHandler(void);回调函数
HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);总结
下一篇文章 介绍 OLED 的使用。