OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4763|回复: 10

请大神们帮看看这程序,为什么进了外部中断执行完了中断里的代码后,它不回去执行主函数的代码,也没执行中断服务函数的代码!!谢谢

[复制链接]

1

主题

10

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1972
金钱
1972
注册时间
2015-3-9
在线时间
113 小时
发表于 2015-5-25 20:41:04 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]void Exti0_Init(void) { EXTI_InitTypeDef EXTI_InitStruct; NVIC_InitTypeDef NVIC_InitStruct; // GPIO_InitTypeDef GPIO_InitStruct; EXTI_DeInit(); // NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // delay_init(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//IO???±????????IO???????? GPIO_EXTILineConfig( GPIO_PortSourceGPIOB, GPIO_PinSource0);//????IO????????IO??????×???????????,????0 ////??????????/////// EXTI_InitStruct.EXTI_Line =EXTI_Line0; //????0->A0 EXTI_InitStruct.EXTI_Mode =EXTI_Mode_Interrupt;//???????????? EXTI_InitStruct.EXTI_Trigger =EXTI_Trigger_Rising;//????????·? EXTI_InitStruct.EXTI_LineCmd =ENABLE ;//???? EXTI_Init (&EXTI_InitStruct); //////????????????????/////// NVIC_InitStruct.NVIC_IRQChannel=EXTI0_IRQn;//????°??ü?????????¨?? NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority =0;//??????????2 NVIC_InitStruct.NVIC_IRQChannelSubPriority =2;//×???????2 NVIC_InitStruct.NVIC_IRQChannelCmd =ENABLE ; NVIC_Init(&NVIC_InitStruct); } //主函数// int main(void) { uint16_t mv; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); delay_init(); uart_init(9600); Exti0_Init(); adc_init(); l5110_gpio_init(); L5110_BLC_H; l5110_init(); Key_zhongduan_Init(); display_l(); l5110_Printf_string(34,0,"0 ~ 3 v"); while(1) { printf ("ok"); delay_ms (500); } } void EXTI0_IRQHandler(void)//????????0·???????,????0??1??2??3??4??EXTI09_5_IRQHandler(void)??EXTI15_10_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line0)!=RESET ) { delay_ms(10); if(KEY0==1) { printf ("z"); } EXTI_ClearITPendingBit(EXTI_Line0); //????LINE0????????±ê???? } }[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

回复【3楼】正点原子: --------------------------------- 谢谢了,问题已找到,延时出了问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

10

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1972
金钱
1972
注册时间
2015-3-9
在线时间
113 小时
 楼主| 发表于 2015-5-25 20:41:05 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
谢谢了,问题已找到,延时出了问题。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11555
金钱
11555
注册时间
2014-4-1
在线时间
1317 小时
发表于 2015-5-25 22:18:35 | 显示全部楼层
进了外部中断执行完了中断里的代码后。。。没执行中断服务函数的代码。。。

这中国话,听着有点绕。

条件不满足,进中断晃一下就走了?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-25 23:56:00 | 显示全部楼层
估计你测试方法不对
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2015-5-26 02:48:16 | 显示全部楼层
大部分时间都是在delay_ms (500);里面空转吧。
业余程序玩家。
回复

使用道具 举报

1

主题

10

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1972
金钱
1972
注册时间
2015-3-9
在线时间
113 小时
 楼主| 发表于 2015-5-26 20:50:17 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
我用开发板资料的例程可以实现,用上面写的就不行了
回复

使用道具 举报

1

主题

10

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1972
金钱
1972
注册时间
2015-3-9
在线时间
113 小时
 楼主| 发表于 2015-5-26 20:54:33 | 显示全部楼层
回复【2楼】xuande:
---------------------------------
没触发中断时,一直打印ok,当按键按下触发中断后打印了一个z,之后就不打印ok,也不打印z,只有当按键再次按下触发中断后又打印了一个z,
回复

使用道具 举报

1

主题

10

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1972
金钱
1972
注册时间
2015-3-9
在线时间
113 小时
 楼主| 发表于 2015-5-26 20:55:19 | 显示全部楼层
回复【2楼】xuande:
---------------------------------
没触发中断时,一直打印ok,当按键按下触发中断后打印了一个z,之后就不打印ok,也不打印z,只有当按键再次按下触发中断后又打印了一个z,
回复

使用道具 举报

1

主题

10

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1972
金钱
1972
注册时间
2015-3-9
在线时间
113 小时
 楼主| 发表于 2015-5-26 21:18:16 | 显示全部楼层
回复【4楼】ofourme:
---------------------------------
试了一下,真是在中断中的延时出了问题。可为什么那延时会出问题呢?延时函数是用SysTick延时的。
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2015-5-26 22:11:57 | 显示全部楼层
delay_ms执行到一半,进去中断又再次调用delay_ms,所以该函数重入了。你可以百度学习一下函数的重入问题。另外,建议不要在中断里面使用延时函数,不然只能说明你的编程水平非常!非常!烂!
业余程序玩家。
回复

使用道具 举报

1

主题

10

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1972
金钱
1972
注册时间
2015-3-9
在线时间
113 小时
 楼主| 发表于 2015-5-27 20:42:15 | 显示全部楼层
在开发板资料的例程中,他又可以用延时?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 22:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表