完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
代码如下 我用小灯检测有没有进入中断,就是进不去 。用万用表测了 我按键按下的时候 A6 电平确实被拉低 了。
void EXtiX_Init(void) { EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//ÍⲿÖжϣ¬ÐèҪʹÄÜAFIOʱÖÓ GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource6); EXTI_InitStructure.EXTI_Line=EXTI_Line6; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//ϽµÑØ´¥·¢ EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); //¸ù¾ÝEXTI_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèEXTI¼Ä´æÆ÷ NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; //ʹÄܰ´¼üËùÔÚµÄÍⲿÖжÏͨµÀ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //ÇÀÕ¼ÓÅÏȼ¶2£¬ NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01; //×ÓÓÅÏȼ¶1 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //ʹÄÜÍⲿÖжÏͨµÀ NVIC_Init(&NVIC_InitStructure); } void EXTI9_5_IRQHandler(void) { LED0=0; // if(EXTI_GetITStatus(EXTI_Line5)!=RESET) // { // cnt++; // if(cnt==4000); // { // // TIM_Cmd(TIM3,DISABLE); // cnt=0; // // } //} EXTI_ClearITPendingBit(EXTI_Line6); } void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //ʹÄÜPA,PD¶Ë¿ÚʱÖÓ GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //LED0-->PA.8 ¶Ë¿ÚÅäÖà GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOA.8 GPIO_SetBits(GPIOA,GPIO_Pin_6); //PA.8 Êä³ö¸ß GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //LED0-->PA.8 ¶Ë¿ÚÅäÖà GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ÍÆÍìÊä³ö GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOA.8 GPIO_SetBits(GPIOA,GPIO_Pin_0); } |
|
相关推荐
1个回答
|
|
|
你是进入中断以后让LED灯灭么?你把PA6配置为推挽输出,推挽输出的电平是不确定的,就是在某个时刻PA6脚的电压可能为低也可能为高(高阻态),就是说在中断之前PA6的电平不确定,建议你把PA6配置为IPU(上拉输入),这样在中断之前电平肯定是高,按键后电平拉低。另外,最好在中断中加一句if(EXTI_GetITStatus(EXTI_Line6)!=RESET),还有复用时钟和JTAG的时钟不用打开
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 00:50 , Processed in 0.760611 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
18343