完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
f427外部中断的配置
void User_Exit_Init() { GPIO_InitTypeDef GPIO_InitStructure; //定义引脚的结构体 EXTI_InitTypeDef EXTI_InitStructure; //定义中断的结构体 NVIC_InitTypeDef NVIC_InitStructure; //定义NVIC的结构体 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//打开GPIOA的时钟 //设置引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //设置引脚为输入模式 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; //设置引脚为不上拉也不下拉 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //初始化按键 GPIO_Init(GPIOA, &GPIO_InitStructure); //设置对应的中断源 对应到GPIOA 的0号引脚 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource0); //配置中断源 哪个引脚就对应几号中断原 EXTI_InitStructure.EXTI_Line = EXTI_Line0; //配置为中断模式 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //配置为上升沿 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //使能外部中断 EXTI_InitStructure.EXTI_LineCmd = ENABLE; //初始化中断 EXTI_Init(&EXTI_InitStructure); /* 配置中断信号 几号中断就对应几号的中断信号EXT**x**_IRQn 但是对于引脚5到9 对应的为 EXTI9_5_IRQn 10到15 对应的为EXTI15_10_IRQn */ NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; /* 设置主优先级 */ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; /* 设置子优先级 */ NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; /* 设置中中断使能 */ NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;、 //初始化NVIC NVIC_Init(&NVIC_InitStructure); } void EXTI0_IRQHandler() { /*中断需要处理的事情*/; } 需要在main函数中设置中断优先组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); F103的中断配置 void UserExitInit() { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; /*打开GPIOA的时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); /* 配置引脚 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; /* 设置为浮空输入*/ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); /*选择中断信号*/ GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); EXTI_InitStructure.EXTI_Line = KEY1_INT_EXTI_LINE; /* 设置为中断模式*/ EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; /* 设置为上升沿中断*/ EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; /*使能中断*/ EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); //设置中断信号 NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; /* 设置主优先级 */ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; /* 设置子优先级 */ NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; /* 设置中中断使能 */ NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;、 //初始化NVIC NVIC_Init(&NVIC_InitStructure); } void EXTI0_IRQHandler() { /*中断需要处理的事情*/; } 同样也需要在main函数中设置中断优先级 在f4和f1中的尾部中断基本完全相同 只有设置中断信号原的函数有点不同在f1中直接就在gpio.c文件中就有GPIO_EXTILineConfig() 而在f4中的SYSCFG_EXTILineConfig()在stm32f4xx_syscfg.c中 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 00:43 , Processed in 0.913189 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号