标题: 关于红外的,基于stm32f103,感觉红外的反应有点迟钝,怎么解决呢 [打印本页]

作者: 探路    时间: 2018-5-31 19:26
标题: 关于红外的,基于stm32f103,感觉红外的反应有点迟钝,怎么解决呢
void LED_Init(void)
{

GPIO_InitTypeDef  GPIO_InitStructure;
         
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);        
        
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                        
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        
GPIO_Init(GPIOA, &GPIO_InitStructure);                                
GPIO_SetBits(GPIOA,GPIO_Pin_8);                                       

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;                    
GPIO_Init(GPIOD, &GPIO_InitStructure);                                 
        GPIO_ResetBits(GPIOA,GPIO_Pin_4);                                       
}

#include "led.h"
#include "delay.h"
#include "sys.h"
int main(void)
{        
        delay_init();            
        LED_Init();        
                          while(1)
        {
                if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==1)//若连接红外的管脚输出高电平,则gpioA_8的LED灯亮
                        GPIO_ResetBits(GPIOA,GPIO_Pin_8);/        
                else
                                GPIO_SetBits(GPIOA,GPIO_Pin_8)//否则,灯熄灭
        }
}
当红外探头对准人时,用来检测高电平的灯GPIOA_Pin_8一直在闪,而且对着人的时,灯不会立马亮


作者: ssop56    时间: 2018-5-31 21:31
还没学C语言编程这样的。。。看起来就很厉害了
作者: 探路    时间: 2018-5-31 21:52
对准人的时候用mdk自带的逻辑分析仪测GPIOA_Pin_8的电平总为低电平,灯一闪一闪的,求大神解答
作者: zhanghyg    时间: 2018-6-1 09:17

你接红外的引脚到底是PA还是PD啊,而且你引脚要设置成上拉输入,多注意细节。
作者: 探路    时间: 2018-6-1 16:53
zhanghyg 发表于 2018-6-1 09:17
你接红外的引脚到底是PA还是PD啊,而且你引脚要设置成上拉输入,多注意细节。

哦,我后面才发现,改成了上拉输入,管脚也对应,还是闪
作者: yunfei_han@163.    时间: 2018-6-1 17:16
建议你先查硬件:
1、用按钮实现高低电平切换,代替红外检测装置,接 输入引脚,看输出变化;
2、万用表量一下 红外检测装置 的信号电平
作者: 17628560831    时间: 2018-6-1 18:29
这是硬件问题吧
作者: wenzedong    时间: 2018-6-1 20:54
探路 发表于 2018-5-31 21:52
对准人的时候用mdk自带的逻辑分析仪测GPIOA_Pin_8的电平总为低电平,灯一闪一闪的,求大神解答

检测GPIOA_Pin_8是用的MDK自带的逻辑分析仪,但那并不能代表实际情况,而实际情况是该GPIO口接的灯一闪一闪的,携带信息的红外线是高低电平交错的,我觉得这能解释为什么灯会一闪一闪的。你的程序是GPIOA_Pin_8为低电平灯亮,是吧?  如果我的想法正确,将else 执行的语句去掉应该就不会一闪一闪的了
作者: 探路    时间: 2018-6-1 20:59
yunfei_han@163. 发表于 2018-6-1 17:16
建议你先查硬件:
1、用按钮实现高低电平切换,代替红外检测装置,接 输入引脚,看输出变化;
2、万用表 ...

感觉这个模块太坑,代码都每变过,时灵时不灵
作者: king101king    时间: 2018-8-1 10:07
优化软件,扫地机应用或用速度更快的能跑200M的有AT32F403




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1