stm32程序执行完main函数然后去干嘛了?之后的中断为何不能响应???
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32程序执行完main函数然后去干嘛了?之后的中断为何不能响应???相关的知识,希望对你有一定的参考价值。
外部中断:main函数里语句
EXTI_PA0_Config(); /* wait interrupt */ while(1) 这样是可以正常中断的。
外部中断:main函数里语句,只是去掉了无限循环而已,为何不能响应中断了呢???
EXTI_PA0_Config(); /* wait interrupt */ while(1) 这样是无法中断的。
第二个写错了,就是去掉那个while(1) ;
求大神解答。。。
你的回答太给力了,就是你说的这样。
我又发现了2个问题:
1,主函数里设置定时器产生PWM,一次执行完后按理说单片机结束工作了,但是还是有PWM产生。只是主机停止工作了吗?
2,中断就是为了节省CPU,这么说来使用中断还得一直等待,还不如直接循环查询某个端口呢?真是感觉不可思议。
while(1)单片机是一只工作的 没有停止 等待中断的发生
中断是节省CPU的 当你的主程序有很多事情要做的时候直接循环查询就很浪费CPU不是一个很好的办法
Go程序执行顺序
进入main包,执行import导入操作,例如需要导入fmt包,则进入fmt包,判断fmt包依赖,进而导入依赖包;
依赖包只会被导入一次,导入依赖包之后,就会执行包常量和变量的初始化,然后执行依赖包中的init函数;
main包中的依赖包都导入完成后,执行main包常量和变量的初始化,然后执行main包中的init函数,然后执行main函数
最后由main函数返回,结束Go程序执行
本文出自 “linux相关” 博客,请务必保留此出处http://diadia.blog.51cto.com/5440926/1747450
以上是关于stm32程序执行完main函数然后去干嘛了?之后的中断为何不能响应???的主要内容,如果未能解决你的问题,请参考以下文章