今天讲解“STM32F103 EXIT中断”,关于EXIT中断里面有很多学问,以我的工作经验来看,有几点是特别容易犯错的,我会在文章最后重点讲解。
每次讲解的不仅仅是基础,而是重点,不起眼的重点,容易被人忽视的重点。关注微信公众号“EmbeddDeveloper”还有更多精彩等着你。
每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。
今天的软件工程下载地址(360云盘):
https://yunpan.cn/cPhvyer3vIwXh访问密码 57e1
STM32F10x的资料可以在我360云盘下载:
https://yunpan.cn/crBUdUGdYKam2访问密码 ca90
工程概要说明:定义一个按键(可自己定义),每按键一次,响应中断一次,在中断函数中LED提示灯变化一次,用户可更加实际情况在中断函数做出相应操作,这里只是一个模板。
关于“STM32F103EXIT中断”我把重要的几点在下面分别讲述,若不明白,请关注微信公众号“EmbeddDeveloper”查阅或留言。
一、RCC时钟配置
该函数位于在bsp.c文件下面;
使能RCC时钟:RCC_APB2Periph_GPIOC和 RCC_APB2Periph_AFIO(针对该工程主要的两项,引脚PC13和复用功能)。
二、EXIT配置
该函数位于在bsp.c文件下面;
对应外部中断(按键)的引脚,这里两处必须匹配。
三、NVIC配置
该函数位于在bsp.c文件下面;
对EXIT的中断控制器进行配置
注意:
EXTI15_10_IRQn包含EXTI10 --- EXTI15共6条外部中断线,也就是说共用一个中断入口,需要在中断里面判断是哪一个中断。
四、中断函数
该函数位于在stm32f10x_it.c文件下面;
这里需要判断是哪个中断,这里的操作根据自己实际情况条添加代码。
五、今天的重点提示
A.外部中断IO
STM32所有的IO引脚都可以配置成外部中断引脚,见手册:
B.中断入口
程序中“EXTI9_5_IRQHandler” 和 “EXTI15_10_IRQHandler”可能开始学习的人不明白,其实很简单,就是综合了几个EXIT中断,入口都在这里。
C.细心的朋友会发现我“中断函数”中有一句else{EXTI->PR = 0xFC00;}, 估计很多人都不明白。这里告诉大家,这句else其实很重要,特别是正式工作的人(我工作亲身经验),为什么重要,在与移植工程时,或许之前的工程开启了其他中断,但移植过后没有屏蔽,从而导致进入中断,而中断标志位又没有清除掉(else就是清除标志位),致使不停止中断中执行。
我们都是平凡的,但需要走好平凡的路。
软件工程下载方式:长按网站->选择复制->打开
或者复制网站在电脑上下载也可。
-
STM32
+关注
关注
2274文章
10929浏览量
357995 -
STM32F103
+关注
关注
33文章
479浏览量
63950 -
EXIT图
+关注
关注
0文章
4浏览量
7031
发布评论请先 登录
相关推荐
串口中断是内部中断还是外部中断,串口中断是怎么触发的
《DNESP32S3使用指南-IDF版_V1.6》第十二章 EXIT实验
stm32 GPIO中断配置教程
STM32CUBEMX(11)--外部中断(EXTI)
stm32怎样触发软件中断
如何在STM32F439 DMA流中断中区分是哪个通道产生的中断?
如何利用STM32CubeMX生成的keil项目如何关闭全局中断?
stm32的中断优先级分组了之后还能改分组吗?
STM32F105可以移植UC/OS-III吗?对于中断嵌套怎么处理?
请问ucos-III中断保护放在中断回调函数还是中断里面?
STM32F0内核的总中断是默认开的吗?
STM32 USART中断与ADC DMA中断冲突造成硬件错误的原因?
CPU中断程序:从硬件看什么是中断?
![CPU<b class='flag-5'>中断</b>程序:从硬件看什么是<b class='flag-5'>中断</b>?](https://file1.elecfans.com/web2/M00/C6/AF/wKgaomYCQ3KALjkCAAAfjk1FgwI317.png)
评论