打印
[STM32F0]

【HAL库】STM32F0中断和事件的概念及外部中断实验代码

[复制链接]
2599|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
什么是“中断”?

CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。

中断与事件的区别
(1)中断:
       需要CPU参与处理才能完成任务。

(2)事件:
       事件机制提供了一个完全由硬件自动完成的触发到产生结果的通道,不要软件的参与,降低了CPU的负荷,节省了中断资源,提高了响应速度(硬件总快于软件),是利用硬件来提升CPU芯片处理事件能力的一个有效方法;

中断/事件 主要特性如下
● 支持产生多达 28 个事件 / 中断请求 ; 外部21条,内部7条;
● 作为外部或内部事件请求的每一线都可独立配置;
● 每个事件 / 中断线都有独立的屏蔽;
● 当系统不处于停机 (STOP) 模式时自动禁止内部各线;
● 独立触发外部事件 / 中断线 ;
● 每个外部中断线都有专用的状态位;
● 仿真所有的外部事件请求。
●  可以选择4种中断优先级(0~3)

中断向量表



中断/事件 配置使用说明
要产生中断,必须先配置好并使能中断线。根据需要的边沿检测设置2个触发寄存器,同时在中断屏蔽寄存器的相应位写’1 ’允许中断请求。当外部中断线上发生了期待的边沿时,将产生一个中断请求,对应的挂起位也随之被置’ 1 ’。在挂起寄存器的对应位写’ 1 ’,将清除该中断请求。
    对于内部中断线,触发沿都为上升沿,中断屏蔽寄存器相应值使能这些中断,但内部中断线没有相应的挂起位。
    如果需要产生事件,必须先配置好并使能事件线。根据需要的边沿检测通过设置 2 个触发寄存器,同时在事件屏蔽寄存器的相应位写’ 1 ’允许事件请求。当事件线上发生了期待的边沿时,将产生一个事件请求脉冲,对应的挂起位不被置’ 1 ’。
    对于外部中断线,一个中断 / 事件请求也可由软件对相应的软件中断 / 事件寄存器位写’ 1 ’来产生。

STM32F0外部中断实验目的:
通过K1键盘产生外部中断输入信号,在中断服务程序中控制LED发光二极管,使LED发光二极管当前状态取反。
STM32F0外部中断实验程序(HAL库)
F0外部中断实验程序.zip (3.77 MB)
更多F0视频教程及资料请关注我发布的其他帖子,陆续更新HAL库视频及例程
沙发
heisexingqisi| | 2018-11-11 19:16 | 只看该作者
名词太多,搞晕了。

使用特权

评论回复
板凳
磨砂| | 2018-11-12 13:00 | 只看该作者
还是多用中断好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

148

主题

499

帖子

64

粉丝