stm32程序执行完main函数然后去干嘛了?之后的中断为何不能响应???

外部中断:main函数里语句EXTI_PA0_Config();/*waitinterrupt*/while(1){}这样是可以正常中断的。外部中断:main函数里语句,... 外部中断:main函数里语句
EXTI_PA0_Config(); /* wait interrupt */ while(1) { } 这样是可以正常中断的。
外部中断:main函数里语句,只是去掉了无限循环而已,为何不能响应中断了呢???
EXTI_PA0_Config(); /* wait interrupt */ while(1) { } 这样是无法中断的。
第二个写错了,就是去掉那个while(1){ };
求大神解答。。。
展开
 我来答
零下一度的沙漠
2015-01-18 · TA获得超过563个赞
知道小有建树答主
回答量:1690
采纳率:0%
帮助的人:354万
展开全部
所有单片机 包括STM32 启动流程是重boot开始 boot就是初始化堆栈 中断向量表 之类一系列的单片机系统环境的参数,之后跳到main函数 main函数一般是一个死循环 死循环中执行一些操作 期间有中断的话就跳转到中断服务函数执行 如果main函数不是死循环 就直接执行一次main函数 结束单片机的操作
追问
你的回答太给力了,就是你说的这样。
我又发现了2个问题:
1,主函数里设置定时器产生PWM,一次执行完后按理说单片机结束工作了,但是还是有PWM产生。只是主机停止工作了吗?
2,中断就是为了节省CPU,这么说来使用中断还得一直等待,还不如直接循环查询某个端口呢?真是感觉不可思议。
追答
while(1)单片机是一只工作的  没有停止  等待中断的发生
中断是节省CPU的 当你的主程序有很多事情要做的时候直接循环查询就很浪费CPU不是一个很好的办法
查晓筠0i5
2015-01-18 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4894万
展开全部
关注这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式