STM32学习心得:EXTI外部中断深入解析

需积分: 0 0 下载量 178 浏览量 更新于2024-12-05 收藏 5.02MB RAR 举报
资源摘要信息:"stm学习笔记4-EXTI外部中断" 知识点: 1. STM32外部中断(EXTI)基本概念: STM32微控制器中的外部中断是指微控制器能够对某些外部事件作出响应,并且打断当前程序的执行,去执行一个特定的中断服务程序。STM32通过EXTI(External Interrupt)线与外部世界连接,实现中断请求。STM32系列微控制器通常有多个外部中断线,可以连接到多个外部设备,比如按钮、开关、传感器等。 2. 中断向量和优先级: STM32的中断管理非常灵活,每一条EXTI线都对应一个中断向量,每个向量都有自己的优先级。当有多个中断同时发生时,中断优先级决定了哪个中断会先得到处理。优先级可以在软件中配置,以便根据应用需求来优化中断响应策略。 3. 中断触发方式: EXTI支持不同的触发方式,包括上升沿触发、下降沿触发和双边沿触发。这意味着可以根据实际需求选择中断在信号边沿变化时响应,或者在电平变化时响应。例如,如果一个按钮按下代表一个事件的开始,可能需要使用下降沿触发。如果按钮释放表示事件的结束,则可能使用上升沿触发。 4. 中断标志位和清除: 每次外部中断发生时,对应的中断标志位会被硬件自动设置。在中断服务程序中,软件需要手动清除这些标志位,以避免出现中断重复触发的问题。如果不及时清除标志位,可能导致中断服务程序陷入连续重复执行的死循环。 5. 中断处理程序编写: 编写中断处理程序时,需要在程序中定义一个中断服务函数,并在其中实现中断发生时需要执行的操作。此外,还需要在系统启动代码中使能中断,并在中断向量表中注册该服务函数。 6. 对射式红外传感器与编码器: 对射式红外传感器通常用于检测物体的存在。两个红外发射器和接收器之间如果没有遮挡,接收器可以接收到发射器发出的信号;如果物体通过这个通道,会阻断信号,接收器接收不到信号,从而可以检测到物体的存在。 编码器通常用于测量旋转物体的角度或转速。当旋转物体带动编码器旋转时,编码器产生一系列脉冲信号,通过计算这些脉冲信号的数量和频率,可以得知旋转物体的运动状态。 7. 使用STM32进行传感器计数: 在STM32微控制器中,可以通过配置GPIO(通用输入输出)引脚为外部中断模式来处理传感器的信号。通过编写中断服务程序,可以对传感器的信号进行计数或者测量。例如,使用外部中断来记录对射式红外传感器的检测次数,或编码器的旋转脉冲数,从而实现精确的计数或速度测量。 8. STM32工程文件说明: - project.uvguix.54072:可能是一个包含项目设置和用户界面布局的文件。 - keilkill.bat:是一个批处理文件,可能用于清理或终止Keil uVision环境的特定任务。 - EventRecorderStub.scvd:是ST公司提供的事件记录器的存根文件,用于记录程序运行时的事件数据,便于调试。 - 对射式红外传感计数以及编码器计数.txt:可能是说明文档或示例代码,描述如何使用STM32处理对射式红外传感器以及编码器的信号计数。 - project.uvoptx、project.uvprojx:这些是Keil uVision工程文件,分别包含优化设置和项目定义。 - System:通常是包含系统配置代码的文件夹,比如系统初始化代码。 - User:通常是用户代码文件夹,包含主程序代码。 - Objects:可能包含编译过程中的中间文件或对象文件。 - Hardware:可能包含与硬件相关配置的文件,比如时钟配置、外设初始化代码等。