完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
新手上路,求大神指导!最近用水位传感器产生一高电平给STM32f1的某一GPIO口产生中断来控制另一GPIO口输出高低电平。但程序下载到单片机测试时,外部中断口不管高低电平都能触发中断,甚至用金属钳子触碰中断输入口导线都会触发中断。求大神指导原因!以下为程序:void GPIO_Configuration(void)
{ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ; GPIO_Init(GPIOA, &GPIO_InitStructure); /*PA11 */ GPIO_ResetBits(GPIOB, GPIO_Pin_15 ); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); } void EXTI_Configuration(void) { EXTI_InitTypeDef EXTI_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); EXTI_ClearITPendingBit(EXTI_Line11); EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_Line = EXTI_Line11; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource11); } void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //抢占式优先级别设置为无抢占优先级 NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; //指定中断源 //NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; 指定占先优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //指定响应优先级别1 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道 NVIC_Init(&NVIC_InitStructure); } void EXTI15_10_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line11) !=RESET) { //添加中断处理程序 GPIO_SetBits(GPIOB , GPIO_Pin_15); delay_ms(1000); GPIO_ResetBits(GPIOB, GPIO_Pin_15); delay_ms(1000); EXTI_ClearFlag(EXTI_Line11); //清除中断标志(必须) EXTI_ClearITPendingBit(EXTI_Line11); } } /************************************************* 函数: int main(void) 功能: main主函数 参数: 无 返回: 无 **************************************************/ int main(void) { RCC_Configuration(); GPIO_Configuration(); NVIC_Configuration(); EXTI_Configuration(); delay_init(72); while (1) ; } |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
693 浏览 0 评论
483 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之ubuntu网络设置
598 浏览 0 评论
龙芯中科胡伟武:3B6600 八核桌面 CPU 性能将达到英特尔中高端酷睿 12~13 代水平
665 浏览 0 评论
树莓派Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!
618 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10719 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 17:32 , Processed in 0.356426 second(s), Total 39, Slave 32 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号