完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在外部中断实验中,exti.c的函数内容是这个样子的。
#include "exti.h"#include "led.h"#include "key.h"#include "delay.h"#include "usart.h"////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途//Mini STM32开发板//外部中断 驱动代码 //发烧友@ALIENTEK//技术论坛:www.openedv.com//修改日期:2010/12/01 //版本:V1.0//版权所有,盗版必究。//Copyright(C) 发烧友 2009-2019//All rights reserved ////////////////////////////////////////////////////////////////////////////////// //外部中断0服务程序void EXTI0_IRQHandler(void){delay_ms(10);//消抖if(KEY2==1) //按键2{LED0=!LED0;LED1=!LED1;} EXTI->R=1<<0; //清除LINE0上的中断标志位 } //外部中断15~10服务程序void EXTI15_10_IRQHandler(void){delay_ms(10); //消抖 if(KEY0==0) //按键0{LED0=!LED0;}else if(KEY1==0)//按键1{LED1=!LED1;}EXTI->R=1<<13; //清除LINE13上的中断标志位 EXTI->R=1<<15; //清除LINE15上的中断标志位 }//外部中断初始化程序//初始化PA0,PA13,PA15为中断输入.void EXTIX_Init(void){RCC->APB2ENR|=1<<2; //使能PORTA时钟JTAG_Set(JTAG_SWD_DISABLE);//关闭JTAG和SWD GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入 GPIOA->CRL|=0X00000008; GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入 GPIOA->CRH|=0X80800000; GPIOA->ODR|=1<<13; //PA13上拉,PA0默认下拉GPIOA->ODR|=1<<15; //PA15上拉 Ex_NVIC_Config(GPIO_A,0,RTIR); //上升沿触发Ex_NVIC_Config(GPIO_A,13,FTIR);//下降沿触发Ex_NVIC_Config(GPIO_A,15,FTIR);//下降沿触发 MY_NVIC_Init(2,2,EXTI0_IRQChannel,2); //抢占2,子优先级2,组2MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2 } 里面有两个终端函数,分别是:void EXTI0_IRQHandler(void) {……}和void EXTIX_Init(void) {……}; 我所不明白的就是为什么当中断发生的时候,系统知道自动调用这个函数,而且在这个程序里面,这两个函数在exti.h文件里面并没有事先声明,但是void EXTIX_Init(void) {……}这个函数声明了,是不是在中断操作中,中断函数的名称都是固定的,比如这个例子,如果GPIO_A对应的按键被按下,系统就知道自动调用对应的void EXTI0_IRQHandler(void) {…… }函数,如果不是这个样子的话,那么中断和终端响应函数之间必须有连接,不然怎么知道启动哪个函数呢? 如果按照我说的这样这些函数名字是固定的,我在MDK中在这两个函数上右击——选择GO TO DEFINITION OF '函数名’就应该看到对应的定义,可是没有。 麻烦有知道的人为我解释,我已经把《例说stm32》有关这部分的内容看了好几遍了,包括system文件夹的内容。还是理解不了。 |
|
相关推荐
3个回答
|
|
|
|
|
|
在启动代码里面找到了,谢谢了啊
|
|
|
|
LZ应该学习怎么才能更好使用编译软件的快捷功能,其实一点就可以点到声明或者定义那里了
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1758 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1055 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1931浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
721浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
563浏览 3评论
590浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
548浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 03:22 , Processed in 0.749270 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号