首页 > 代码库 > rc滤波
rc滤波
这2天在做一个项目,需要用到光电开关检测位置,因为想到stm32有外部中断EXTI功能,就决定用它吧,不用不知道,用了才发现不像想象的那样简单,程序竟然没按预期动作,调试发现中断进入多次,对照手册,没找到外部中断的滤波设置,所以就按以前的老方法,来个软件滤波吧,效果不错,
1 static unsigned char exti4 = 0; 2 void exti(void) 3 { 4 exti4 |= GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4); 5 if((exti4&0xf) == 0xc) //falling 6 { 7 //key3handler(0); 8 key3handler_up(0); 9 LED = 1;10 //printf("fall \r\n");11 }12 else if((exti4&0xf) == 0x3) // rising13 {14 key3handler(0);15 LED = 0;16 //printf("rising \r\n");17 }18 exti4 <<= 1;19 }
在ms中断中调用exti()即可。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。