【蓝桥杯嵌入式】四、各种外设驱动(三)NVIC中断程序通用步骤——分析与配置

        由于内容比较多,为了更详细的说明,我也会花比较多的时间研究。而为了及时更新,我会把有些文章分成几个部分,谢谢大家理解 。

目录

一、需求分析

1、需要的外设资源分析:

 2、外设具体分析:

3、软件分析

二、软件配置

1、复制项目流程:

2、中断配置

a、GPIO模式配置

b、NVIC配置

三、编写代码


一、需求分析

使用中断方式检查按键是否按下,设置不同优先级,介绍通用的中断处理步骤。

1、需要的外设资源分析:

        4个KEY信号引脚,8个LED控制引脚(引脚的配置与前面的文章相同,这里不再赘述)

 2、外设具体分析:


       根据STM32G4手册,该芯片的中断有很多,这里要用到的是外部中断。中断的知识点很多教程和教材上都有详细介绍,这里只针对比赛时如何快速准确的使用中断做讲解。

        将按键引脚设置为外部中断信号引脚,上跳沿触发。KEY1设置为较高优先级,KEY2设置为较低优先级。使用KEY3产生软中断,模拟KEY1按下。所以一共要开启三个外部中断EXTI0\1\2。

        因为这里的按键是低电平有效,所以设置为下跳沿引发中断。

3、软件分析

        在中断回调函数中编写代码,当KEY2按下时所有LED点亮,KEY1按下时熄灭LED1~4(为了验证正确性,这里延时1s)。KEY3按下后会产生软中断(这个一般考试时用不到,感兴趣的可以看HAL文档),出发EXTI0中断。

二、软件配置

        新建项目"EXTI_Demo",建议新建练习一下,或者可以直接复制“dev_KEY_Demo”项目。

1、复制项目流程:

a、复制整个“dev_KEY_Demo”文件夹

b、改名,文件夹名称和  .ioc  文件名称要一致

c、删除文件/夹

d、打开  .ioc  文件,更改时钟配置。

e、更改配置(在下面:2、中断配置),生成文件;可以看到代码没有改动。

f、引入外部 .c (如led.c)文件,完成项目复制。

2、中断配置

a、GPIO模式配置

        打开 .ioc 文件,左键PB0引脚,选择GPIO_EXTI0模式。

        右击PA0引脚,改名字为KEY4。

        设置为下跳沿触发中断,上拉。

其余两个做同样处理,结果如图:

b、NVIC配置

 为了实验(比赛时不要在中断中使用 HAL_Delay( ) 延时!)这里将Time base: System tick timer(基础时钟:系统滴答计时器)的优先级改为0:

4位用于抢占优先级,EXTI0设置为较高优先级  1;EXTI1设置为较低优先级 2;EXTI2设置为 2。

配置完成后生成代码。

【蓝桥杯嵌入式】四、各种外设驱动(三)NVIC中断程序通用步骤——中断服务程序-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值