图 4 – 设置中断优先级
步骤 7 – 启用中断
启用中断通常是一个两步过程 。 第一步是嵌入式开发人员可以检查中断寄存器并取消屏蔽系统将要使用的中断 , 取消屏蔽中断允许中断控制器在触发该特定中断时做出响应;第二步是启用实际中断 , 再次启用中断可能因微控制器而异 , 因此打开数据表并仔细检查非常重要 。 图5显示了如何通过首先取消屏蔽中断然后使用CMSIS启用与GPIO C13关联的中断线来启用STM32 Nucleo板上的GPIO C13的示例 。
图 5 – 启用中断
步骤 8 – 创建中断处理程序
中断控制器现已配置!只有一个问题 , 当中断发生时 , 没有中断处理程序来响应中断 。 下一个合乎逻辑的步骤是创建一个中断处理程序 。 有很多方法可以做到这一点 , 不仅取决于架构 , 还取决于编译器和IDE 。 将函数指定为中断通常使用#pragma或类似类型的编译器内在函数 。 在ARM平台上进行开发时 , 开发人员只需要查看中断列表并使用匹配的预先指定的处理程序创建一个函数 。 图6显示了中断处理程序如何查找GPIO C13的示例 。
图 6 – 空中断处理程序
步骤 9 – 清除处理程序中的中断标志
大多数微控制器要求开发人员在中断处理程序中手动清除中断标志 。 在特殊情况下 , 中断标志会自动清除 , 但应参考微控制器的数据表来确定哪些中断以这种方式运行 。 GPIO中断通常作为一个块触发 , 进入中断后 , 需要执行简单的检查以确定是哪条GPIO线导致了中断 。 然后可以清除相应的标志 。 图7显示了如何做到这一点 。
图 7 – 清除处理程序中的中断标志
步骤 10 – 测试和调试
最后 , 在完成所有这些步骤之后 , 嵌入式开发人员人员现在可以测试他们的代码了 。 固件在第一次尝试时不太可能正确运行 , 但是在密切遵循每个步骤之后 , 在中断启动并正确运行之前应该只需要进行微小的调整 。
- 移动互联网|任天堂新款Switch正在开发中 但发售日期仍是个谜
- 助力上海战疫 携程为援沪医疗及保供企业协调客房超14万间夜
- 由于许多宇宙开发、智能机器人、外星人科幻电影宣传作用|宇宙开发、智能机器人、外星人研究推动智慧生命科普活动
- 阿联酋航空|华为与阿联酋航空达成一致:开发中东市场!
- 伊隆·马斯克|三维游戏引擎开发图形理论基础
- 人民日报|人民日报公开发声,移动、联通、电信该反思了
- 水下|我国深水油气开发关键技术装备研制获重要突破
- |人民日报公开发声,移动、联通、电信该反思了,清除5G发展拦路虎
- 索尼Xperia|上位机开发——多线程启动停止暂停继续
- 3D打印|研究人员开发出具有卓越超弹性的 3D 打印形状记忆合金
