如果建设管理运营一个网站,哈尔滨网站建设哪儿好薇,用dw制作个人简介网页教程,深圳专业做网站的公司哪家好萌新的STM32学习-18 中断的基本概念3
EXTI和IO映射的关系 AFIO简介#xff08;F1#xff09; Alternate Function IO 复用功能IO 主要用于重映射和外部中断映射配置 1.调试IO配置 来自AFIO_MAPR[26:24] , 配置JTAG/SWD的开关状态 #xff08;这个我们并不用太过深刻的关注F1 Alternate Function IO 复用功能IO 主要用于重映射和外部中断映射配置 1.调试IO配置 来自AFIO_MAPR[26:24] , 配置JTAG/SWD的开关状态 这个我们并不用太过深刻的关注 2.重映射配置 AFIO_MAPR , 部分外设IO重映射配置 (这也不算是本节课的重点 自行去查阅 3. 外部中断配置 AFIO_EXTICR1~4 配置EXTI中断线0~15对应到哪个具体的IO口 特别注意 配置AFIO寄存器之前要使能AFIO时钟 __HAL_RCC_AFIO_CLK_ENABLE(); 对应RCC_APB2ENR寄存器 位0
EXTI0与引脚号为0 相对应 比如他控制着一整组的PA0 PB0 PC0 PD0 直到PK0 等等
AFIO_EXTICR1 的 EXTI0[3:0] 位正好是4位控制着 F1 AFIO 所做的工作就是告诉我们EXTI究竟会和GPIO的哪一个端口对应
外部中断配置寄存器1 AFIO_EXTICR1 这个寄存器的高16位保留 低十六位分割为每四位一组 那么一个AFIO_EXTICR1 就可以控制4条EXTI线 这样的AFIO一共有个 那么一共能够控制实现个这样的地址线
我们是这样来说明的EXTI 举个例子在配置EXTI上 那就是指用以选择EXTI外部中断的输入源 P引脚 PB 引脚 PC 引脚 PD 引脚 PG 引脚
如何使用中断 GPIO外部中断 设置输入模式 GPIO 上拉 下拉 浮空 经过GPIO 来到AFIO 用来设置 EXTI和IO的映射关系
接下来就来到了EXTI EXTI 即是外部中断和事件控制器它是由 20 个产生事件/中断请求的边沿检测器组成。每一条输入线都可以独立地配置输入类型脉冲或挂起和对应的触发事件上升沿或下降沿或者双边沿都触发。 再接下来来到了NVIC就是中断管家 NVIC可以设置中断分组优先级使能
GPIO外部中断对应着EXTIEXTI 一共根线 那么剩下的EXTI 等等 它会从其他外设进入EXTI 既然信号是外部进来的那么首先遇到的外设肯定是GPIO 上拉 下拉 浮空输入 接下来会来到 AFIOF1 然后到EXTI 外部中断事件控制器 屏蔽 上升沿 下降沿 然后传入了 NVIC 中断总管家 管理了使能 优先级控制 最后传入进CPU 去处理中断 EXTI 即是外部中断和事件控制器它是由 20 个产生事件/中断请求的边沿检测器组成。每一条输入线都可以独立地配置输入类型脉冲或挂起和对应的触发事件上升沿或下降沿或者双边沿都触发。每个输入线都可以独立地被屏蔽。挂起寄存器保持着状态线的中断请求。 STM EXTI 的配置步骤 .使能GPIO时钟 目的是使能GPIO时钟 .设置GPIO输入模式 设置上拉下拉浮空 AFIO就是设置IO与EXTI映射关系 3.使能AFIO/SYSCFG时钟 设置AFIO的时钟开启寄存器 4. 设置EXTI和IO对应关系 选择PA~PK到底哪组IO对应EXTI输入先AFIO 5.设置EXTI屏蔽上/下沿 设置EXTI对应通道的屏蔽和上升沿/下降沿触发 6.设置NVIC 分3步设置优先级分组设置优先级使能中断
7.设置中断服务函数 编写对应中断的中断服务函数清中断标志 因为我们现在用的是HAL库 所以的2到5步可以通过HAL_GPIO_Init一步到位
下面是STM32 EXTI的HAL库设置步骤GPIO外部中断 就是把上面的2-5步合成用HAL库的形式 1.使能GPIO时钟 使用__HAL_RCC_GPIOx_CLK_ENABLE) 2.GPIO/AFIO/EXTI 使用HAL_GPIO_Init一步到位 3.设置中断分组 使用HAL_NVIC_SetPriorityGrouping 此函数仅需设置一次即可 4.设置中断优先级 使用HAL_NVIC_SetPriority) 5.使能中断 使用HAL_NVIC_EnableIRQ) 6.设计中断服务函数 编写EXTIx_IRQHandler,中断服务函数清中断标志 说起GPIO那么我们会想到适用于EXTI0到15 那么是否这些都有Handler 其实我们说并没有 STM32平台仅有EXTI0-4 各有一个 EXTI5 6 7 8 9 共用一个 EXTI10 11 12 13 14 15共用一个 总共有7个外部中断服务函数
通用外设驱动模型四步法 1.初始化 时钟设置参数设置IO设置中断设置开中断设NVIC 2.读函数可选 从外设读取数据 3.写函数 可选 往外设写入数据 4.中断服务函数 可选 (根据中断标志处理外设各种终端事务
HAL库中断回调处理机制介绍 凡是用到中断 都会有一个中断服务函数 在.s文件里面 也叫硬件中断服务函数 在处理中断程序之后会有一个清标志这是正常的 但是在我们的HAL库里是怎么操作的 调用一个HAL库中断处理公用函数 这里的作用是异常处理清中断标志调各种回调函数 下一步到了HAL库数据处理回调函数 包括多个各种的回调函数