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){ };
求大神解答。。。 展开
EXTI_PA0_Config(); /* wait interrupt */ while(1) { } 这样是可以正常中断的。
外部中断:main函数里语句,只是去掉了无限循环而已,为何不能响应中断了呢???
EXTI_PA0_Config(); /* wait interrupt */ while(1) { } 这样是无法中断的。
第二个写错了,就是去掉那个while(1){ };
求大神解答。。。 展开
2个回答
展开全部
所有单片机 包括STM32 启动流程是重boot开始 boot就是初始化堆栈 中断向量表 之类一系列的单片机系统环境的参数,之后跳到main函数 main函数一般是一个死循环 死循环中执行一些操作 期间有中断的话就跳转到中断服务函数执行 如果main函数不是死循环 就直接执行一次main函数 结束单片机的操作
追问
你的回答太给力了,就是你说的这样。
我又发现了2个问题:
1,主函数里设置定时器产生PWM,一次执行完后按理说单片机结束工作了,但是还是有PWM产生。只是主机停止工作了吗?
2,中断就是为了节省CPU,这么说来使用中断还得一直等待,还不如直接循环查询某个端口呢?真是感觉不可思议。
追答
while(1)单片机是一只工作的 没有停止 等待中断的发生
中断是节省CPU的 当你的主程序有很多事情要做的时候直接循环查询就很浪费CPU不是一个很好的办法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询