嵌入式学习——中断及串口通信进阶

嵌入式学习——中断及串口通信进阶

1.任务一——采用中断模式编程,使用中断方式点亮LED

1.1 任务要求

用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。(使用STM32CubeMX库)

1.2 中断简介

定义:指处理机处理程序运行中出现的紧急事件的整个过程.程序运行过程中,系统外部、系统内部或者现行程序本身若出现紧急事件,处理机立即中止现行程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的程序运行,这整个过程称为程序中断。

1.2.1 中断的过程和原理 :
  1. 中断源发出中断请求;
  2. 判断当前处理机是否允许中断和该中断源是否被屏蔽;
  3. 优先权排队;
  4. 处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服务程序;
  5. 执行中断服务程序;
  6. 恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。

上述过程中前四项操作是由硬件完成的,后两项是由软件完成的。中断全过程分简单概括为为5个阶段:中断请求、中断判优、中断响应、中断处理和中断返回

1.2.2 中断分类:

从不同的角度来说,中断可以有三种分类方法:

  1. 中断可以分为同步中断(synchronous)和异步中断(asynchronous)。

  2. 中断可分为硬中断和软中断。

  3. 中断可分为可屏蔽中断(Maskable interrupt)和非屏蔽中断(Nomaskable interrupt)。

同步中断——同步中断是当指令执行时由控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后 CPU 才会发出中断。)

异步中断——异步中断是由其他硬件设备依照 CPU 时钟信号随机 产生的。

硬中断——硬中断是由外部事件引起的因此具有随机性和突发性,硬中断的中断响应周期,CPU需要发中断回合信号(NMI不需要),硬中断的中断号是由中断控制器提供的(NMI硬中断中断号系统指定为02H)。

软中断——软中断是执行中断指令产生的,无面外部施加中断请求信号,因此中断的发生不是随机的而是由程序安排好的,软中断的中断响应周期,CPU不需发中断回合信号,软中断的中断号由指令直接给出,无需使用中断控制器,软中断不可屏蔽。

屏蔽中断——是由有中断能力的外围设备所产生,最简单的就是由屏蔽器引起的。

非屏蔽中断——非屏蔽中断就是计算机内部硬件出错时引起的异常情况,也就是说可能是CPU的故障,不过突然断电也能引起。

通常我们所说的中断指的是异步中断,我们将同步中断称为异常。(异常是由程序的错误产生的,或者是由内核必须处理的异常条件产生的)

1.2.3 中断优先级:
  • 多个中断同时出现时,处理器先响应高优先级的中断
  • 低优先级中断的ISR执行时,可以被高优先级中断再次打断
  • ISR比App Code拥有更高的执行优先级

1.3 配置STM32CubeMX

题目要求:

用stm32F103核心板的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。
分析:

按键按下中断引脚读到低电平,按键升起中断引脚读到高电平。

因为按下的瞬间是形成下降沿,升起的瞬间是形成上升沿,题目要求是高电平触发,即需要设置上升沿触发

STM32CubeMX配置:

具体下载及新建工程的流程请参考此博客:https://blog.csdn.net/qq_66144143/article/details/127309228

先来到引脚设置界面,点击GPIO,然后选择设置的引脚,一个设置为中断检测引脚,一个设置为电平输出引脚,具体配置如图:

在这里插入图片描述

PA1设置为外部中断,设置模式为GPIO_EXTI1,PA1与外部中断线EXIT1连接GPIO_EXIT1。

PB5设置为电平输出端口,设置引脚模式为GPIO_Output,默认输出低电平。

然后我们点开左边的引脚进行具体的设置,具体设置如图:

先设置PB5引脚,电平默认输出即可,把引脚名字改成LED方便辨认引脚的作用。

在这里插入图片描述

然后设置中断检测引脚PA1,具体设置如图:

在这里插入图片描述

PIO mode处选择上升沿触发,如图中“2”,然后改个名字方便辨认引脚作用。

接下来使能外部中断,如图:

在这里插入图片描述

然后设置中断优先级:

在这里插入图片描述

到此引脚部分就配置完成了,接下来就开始配置SYS(系统模式和配置),设置串行通信,如图:

在这里插入图片描述

然后开始设置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值