96SEO 2026-02-23 13:51 14
中断优先级当有多个中断源同时申请中断时CPU会根据中断源的轻重缓急进行裁决优先响应更加紧急的中断源

中断嵌套当一个中断程序正在运行时又有新的更高优先级的中断源申请中断CPU再次暂停当前中断程序转而去处理新的中断程序处理完成后依次进行返回。
不用开启外设时钟特殊EXTI可以监测指定GPIO口的电平信号当其指定的GPIO口产生电平变化时EXTI将立即向NVIC发出中断申请经过NVIC裁决后即可中断CPU主程序使CPU执行EXTI对应的中断程序
通道数16个GPIO_Pin外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒
配置所选中断线的触发选择位(EXTI_RTSR和EXTI_FTSR)
配置对应到外部中断控制器(EXTI)的NVIC中断通道的使能和屏蔽位使得20个中断线中的请求可以被正确地响应。
最重要逻辑即下图
外设时钟)通过AFIO_EXTICRx配置GPIO线上的外部中断/事件必须先使能AFIO时钟。
112通用I/O端口以下图的方式连接到16个外部中断/事件线上
要产生中断必须先配置好并使能中断线。
根据需要的边沿检测设置2个触发寄存器上升沿还是下降沿同时在中断屏蔽寄存器的相应位写’1’允许中断请求如下图利用与门的特点0x
x。
当外部中断线上发生了期待的边沿时将产生一个中断请求对应的挂起位也随之被置’1’。
在挂起寄存器的对应位写’1’将清除该中断请求。
从上图还可以看出支持的触发方式上升沿/下降沿/双边沿/软件触发边沿检测电路进来后经过一个或门或门是有1为1故不管是软件中断寄存器进行触发还是边沿检测电路触发都能触发中断一路发生中断一路是事件触发同样都存在屏蔽寄存器。
而请求挂起寄存器
此外在配置nvic时还需要注意的是EXTI9_5和EXTI15_10
//定义结构体变量NVIC_InitStructure.NVIC_IRQChannel
//选择配置NVIC的EXTI15_10线NVIC_InitStructure.NVIC_IRQChannelCmd
//指定NVIC线路使能NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority
//指定NVIC线路的抢占优先级为1NVIC_InitStructure.NVIC_IRQChannelSubPriority
//指定NVIC线路的响应优先级为1NVIC_Init(NVIC_InitStructure);
2.开启IO口复用时钟RCC_APB2PeriphClockCmd();
/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,
//开启GPIOB的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,
//开启AFIO的时钟外部中断必须开启AFIO的时钟/*GPIO初始化*/GPIO_InitTypeDef
GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode
GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin
GPIO_Pin_14;GPIO_InitStructure.GPIO_Speed
GPIO_Speed_50MHz;GPIO_Init(GPIOB,
/*AFIO选择中断引脚*/GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,
GPIO_PinSource14);//将外部中断的14号线映射到GPIOB即选择PB14为外部中断引脚
//定义结构体变量EXTI_InitStructure.EXTI_Line
//选择配置外部中断的14号线EXTI_InitStructure.EXTI_LineCmd
//指定外部中断线使能EXTI_InitStructure.EXTI_Mode
//指定外部中断线为中断模式EXTI_InitStructure.EXTI_Trigger
//指定外部中断线为下降沿触发EXTI_Init(EXTI_InitStructure);
5.配置中断分组(NVIC)并且使能中断NVIC_Init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//配置NVIC为分组2//即抢占优先级范围0~3响应优先级范围0~3//此分组配置在整个工程中仅需调用一次//若有多个中断可以把此代码放在main函数内while循环之前//若调用多次配置分组的代码则后执行的配置会覆盖先执行的配置/*NVIC配置*/NVIC_InitTypeDef
//定义结构体变量NVIC_InitStructure.NVIC_IRQChannel
//选择配置NVIC的EXTI15_10线NVIC_InitStructure.NVIC_IRQChannelCmd
//指定NVIC线路使能NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority
//指定NVIC线路的抢占优先级为1NVIC_InitStructure.NVIC_IRQChannelSubPriority
//指定NVIC线路的响应优先级为1NVIC_Init(NVIC_InitStructure);
6.编写中断服务函数():EXTIx_IRQHandler();
PxN管脚共用外部中断线EXTIN和外部中断向量EXTIN_IRQn和中断服务程序入口EXTIN_IRQHandler(这些都不能写错)
7.清除中断标志位EXTI_ClearITPendingBit();
//判断是否是外部中断14号线触发的中断{/*如果出现数据乱跳的现象可再次判断引脚电平以避免抖动*/if
//计数值自增一次}EXTI_ClearITPendingBit(EXTI_Line14);
//清除外部中断14号线的中断标志位//中断标志位必须清除//否则中断将连续不断地触发导致主程序卡死}
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback