大家好,请教一个输入捕获频繁误中断的问题

2019-08-09 16:56发布

我用的f103c8,48脚
在A1脚进行输入捕获,检测下降沿,tim2开启了cc2中断

结果奇怪的现象……
上电后,A1未做任何连接,可是只要手指,或信号输入导线接近(不用接触)A1或临近针脚时,就会频繁产生误中断。
有哪位高人见过这情况吗?麻烦指点下问题在哪呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
正点原子
1楼-- · 2019-08-09 22:47
正常的,IO状态不稳定的时候,很容易产生这种情况.
八度空间
2楼-- · 2019-08-10 02:34
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-08-10 05:51
回复【2楼】八度空间:
---------------------------------
又心情不好了?
xuande
4楼-- · 2019-08-10 11:24
正常现象。

接固定电平,比如过电阻接3.3v,或者接驱动,就不会出现了。
八度空间
5楼-- · 2019-08-10 16:18
回复【3楼】正点原子:
---------------------------------
呵呵
杏帘在望
6楼-- · 2019-08-10 20:43
回复【3楼】正点原子:
---------------------------------
请教一下原子哥,void delay_ms(u16 nms)

if(OSRunning==TRUE)//如果 os 已经在跑了 

if(nms>=fac_ms)//延时的时间大于 ucos 的最少时间周期
{
OSTimeDly(nms/fac_ms);//ucos 延时
}
nms%=fac_ms;//ucos 已经无法提供这么小的延时了,采用普通方式延时
}
delay_us((u32)(nms*1000)); //普通方式延时
}



这段代码里面nms%=fac_ms;//ucos 这个语句是不是不能被执行啊,也就是说我怎么觉得
if(nms>=fac_ms)//延时的时间大于 ucos 的最少时间周期
{
OSTimeDly(nms/fac_ms);//ucos 延时
}这段代码会进入死循环,因为nms没有被赋值所以if语句应该一一直为真或者一直为假......................................

一周热门 更多>