全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

第八章 外部中断

时间:2022-01-25 09:30

人气:

作者:admin

标签: STM32 

导读:第一节原理解读打算写一下中断,又忍不住想说一下中断的概念,去书上翻一翻,或者自己在搜索引擎上搜一下,都可以找到一大堆,包括本文写的这个外部中断也不例外。如果要写光...

第一节原理解读

打算写一下中断,又忍不住想说一下中断的概念,去书上翻一翻,或者自己在搜索引擎上搜一下,都可以找到一大堆,包括本文写的这个外部中断也不例外。如果要写光是中断就可以单独写一篇了,所以本文直入主题,对于STM32的外部中断进行详细的剖析。下图来自《STM32参考手册》,从整个架构图可以知道,外部中断的功能可以配置六个寄存器

5fa7a538-7d32-11ec-8beb-dac502259ad0.png

GPIO的映射关系图如下所示:5fbd3556-7d32-11ec-8beb-dac502259ad0.png第二节配置环境1,打开STM32CubeMX并选择芯片,下载器配置如下图。

5fce18f8-7d32-11ec-8beb-dac502259ad0.png

2,选择按键的引脚,配置成外部中断。如下图:

5fe83cd8-7d32-11ec-8beb-dac502259ad0.png

3,配置PC15引脚(也就是开发板上LD5的引脚)为输出模式。

5ffae388-7d32-11ec-8beb-dac502259ad0.png4,选中GPIO,选择PC14,并且将GPIO的模式配置为外部中断下降沿有效。如下图:

60115848-7d32-11ec-8beb-dac502259ad0.png

5,使能中断。如下图。

60269e92-7d32-11ec-8beb-dac502259ad0.png

6,设置时钟树,项目路径,项目名称等等信息将不再阐述。配置完后生成项目即可。

第三节编写代码

1,大家先看看stm32l0xx_it.c的这个函数,这个是一个中断函数,中断服务函数里面就调用了GPIO外部中断处理函数HAL_GPIO_EXTI_IRQHandler(),参数为GPIO_PIN_14,即EXTI14中断。

6037b1d2-7d32-11ec-8beb-dac502259ad0.png

2,详细看看这个函数,GPIO外部中断处理函数主要就是清除中断标识位,然后调用中断回调函数HAL_GPIO_EXTI_Callback()。我们只需重构中断回调函数,在函数里面添加我们的应用代码即可。

604dc3b4-7d32-11ec-8beb-dac502259ad0.png

3,于是,在main.c中添加回调函数,如下:

605fb13c-7d32-11ec-8beb-dac502259ad0.png

4,配置下载器等就不再重复阐述了。

第四节 实验现象

实验注意事项:

1,程序语句需要位于程序的BEGIN与END之间。

2,利用USB线将电脑USB口与开发板USB1口连接。

3,CN4所有拨码开关必须选择ON DP档,否则无法下载程序。

实验现象:

LD1,LD4常亮。LD5上电长量,按下USER按键,LD5翻转。

宗旨:

免费的服务,永远的开源

说明:

1.本教程免费,开源,禁止用于任何商业用途,违者必究。

2.本教程版权所属为东莞市东城墨竹公子电子工作室,盗版必究。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信