完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
程序没有卡在中断里面,触发函数运行没问题,但触发过后,main中的函数就是不运行了
主函数如下:
中断函数:
但是这句:while(b < 0xffff)//注释掉循环问题后正常 有大神能解答么,多谢 |
|
相关推荐
12个回答
|
|
|
你还有一句B = 0呢?反复清零,什么时候能达到退出?既然主函数不运行,说明有人霸占了CPU的使用权,你想想
最佳答案
|
|
|
|
|
|
变量b是个U32的变量,他满足这个条件while(b < 0xffff),会一直执行,一直霸占,只要小于65535,这是个死循环,你为什么这么用呢?中断我从没用过死循环,中断的机制你可能没搞懂,不能这么用
|
|
|
|
|
dabing89 发表于 2016-8-14 21:32 一直按住按键b会自增啊,超过后就推出while了,处理防抖的一种方式,这个中断本身是没问题的,控制引脚A10上的LED开关都正常 |
|
|
|
|
|
就不能用普通的延时函数吗?非要要这样的方式去延时消抖? |
|
|
|
|
|
呵呵,自己的程序要好好检查
|
|
|
|
|
|
|
|
|
|
|
|
非常感谢你的指点,多谢 |
|
|
|
|
|
不过: if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0) == 0) //消抖 { delay_ms(20); if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0) == 0)a = !a; } 这种消抖经常错误触发啊,有什么更好的消抖方法么 |
|
|
|
|
|
if(...) { delay(); if(...) { //you code } } |
|
|
|
|
|
|
|
|
|
|
|
本帖最后由 dabing89 于 2016-8-17 11:31 编辑
加一下延时看看,试一试吧。。。。。。。。 |
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2776 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2379 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2255 浏览 0 评论
2367 浏览 1 评论
1625 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 15:51 , Processed in 1.059235 second(s), Total 65, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
7644