怎么做单位网站,建设网站平台合同范本,大连筑成建设集团有限公司网站,移动互联网终端设备的主要技术指标是什么一、NVIC简介 什么是 NVIC #xff1f; NVIC 即嵌套向量中断控制器#xff0c;全称 Nested vectored interrupt controller 。它 是内核的器件#xff0c;所以它的更多描述可以看内核有关的资料。M3/M4/M7 内核都是支持 256 个中断#xff0c;其中包含了 16 个系统中…一、NVIC简介 什么是 NVIC NVIC 即嵌套向量中断控制器全称 Nested vectored interrupt controller 。它 是内核的器件所以它的更多描述可以看内核有关的资料。M3/M4/M7 内核都是支持 256 个中断其中包含了 16 个系统中断和 240 个外部中断并且具有 256 级的可编程中断设置。然而芯片厂商一般不会把内核的这些资源全部用完如 STM32F407 的系统中断有 10 个外部中断有82 个。 1、NVIC寄存器 2、中断优先级 STM32 中的中断优先级可以分为抢占式优先级和响应优先级响应优先级也称子优先级每个中断源都需要被指定这两种优先级。抢占式优先级和响应优先级的区别 抢占优先级 抢占优先级高的中断可以打断正在执行的抢占优先级低的中断。 响应优先级 抢占优先级相同响应优先级高的中断不能打断响应优先级低的中断。 还有一种情况就是当两个或者多个中断的抢占式优先级和响应优先级相同时那么就遵循自然优先级看中断向量表的中断排序数值越小优先级越高。 对于 NVCI 的中断优先级分组 STM32F407 将中断分为 5 个组组 0~4 。该分组的设置是由 SCB-AIRCR 寄存器的 bit10~8 来定义的。 所以中断优先级分组决定了中断优先级控制寄存器位数的分配设置设置哪几位是抢占优先级哪几位是响应优先级所以中断优先级分组就决定了中断的抢占优先级和响应优先级的设置范围。 通过这个表我们就可以清楚的看到组 0~4 对应的配置关系例如优先级分组设置为 3 那么此时所有的 82 个中断每个中断的中断优先寄存器的高四位中的最高 3 位是抢占优先级 低 1 位是响应优先级。每个中断你可以设置抢占优先级为 0~7 响应优先级为 1 或 0 。抢占优先级的级别高于响应优先级。而数值越小所代表的优先级就越高。 HAL_NVIC_SetPriorityGrouping 函数 HAL_NVIC_SetPriorityGrouping 是设置中断优先级分组函数。 这个函数在一个工程里基本只调用一次而且是在程序 HAL 库初始化函数里面已经被调 用后续就不会再调用了。因为当后续调用设置成不同的中断优先级分组时有可能造成前面设置好的抢占优先级和响应优先级不匹配。 3、NVIC的使用 二、EXTI 简介 EXTI 即是外部中断和事件控制器它是由 20 个产生事件/ 中断请求的边沿检测器组成。每 一条输入线都可以独立地配置输入类型脉冲或挂起和对应的触发事件上升沿或下降沿或者双边沿都触发。每个输入线都可以独立地被屏蔽。挂起寄存器保持着状态线的中断请求。 产生中断线路目的使把输入信号输入到 NVIC进一步运行中断服务函数实现功能。而产生事件线路目的是传输一个脉冲信号给其他外设使用属于硬件级功能。 对于正点原子 EXTI 的功能框图是最直接把有关 EXTI 的知识点连接起来的图掌握了该图的来龙去脉就会对 EXTI 有了一个整体熟悉编程时候可以得心应手。 三、如何使用中断 1、EXTI中断流程 EXTI 0-15这16根线会与gpio完成映射EXTI16、17....等输入线是其他外设中断比如闹钟USB等这两者统称为EXTI中断。 2、EXTI中断配置步骤 其中步骤2-5可以使用HAL_GPIO_Init一步到位 四、HAL库中断回调处理机制 五、应用示例 应用步骤 1、看原理图确定引脚连接 2、使能IO口时钟完成IO口与中断线的映射关系设置优先级设置中断服务函数处理中断设置中断回调函数实现具体中断处理操作。 按键消抖的实现 按键按下GPIO中断|v
启动定时器复位计数器|v定时器计时10ms|v
定时器计数完成触发中断|v
检查按键状态确认按下|v
停止定时器设置标志位|v主循环处理中断事件