找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2954|回复: 9
打印 上一主题 下一主题
收起左侧

关于红外的,基于stm32f103,感觉红外的反应有点迟钝,怎么解决呢

[复制链接]
回帖奖励 2 黑币 回复本帖可获得 2 黑币奖励! 每人限 3 次
跳转到指定楼层
楼主
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一直在闪,而且对着人的时,灯不会立马亮

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:342501 发表于 2018-5-31 21:31 | 只看该作者
还没学C语言编程这样的。。。看起来就很厉害了
回复

使用道具 举报

板凳
ID:229016 发表于 2018-5-31 21:52 | 只看该作者
对准人的时候用mdk自带的逻辑分析仪测GPIOA_Pin_8的电平总为低电平,灯一闪一闪的,求大神解答
回复

使用道具 举报

地板
ID:330198 发表于 2018-6-1 09:17 | 只看该作者

你接红外的引脚到底是PA还是PD啊,而且你引脚要设置成上拉输入,多注意细节。

评分

参与人数 1黑币 +4 收起 理由
wenzedong + 4 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:229016 发表于 2018-6-1 16:53 | 只看该作者
zhanghyg 发表于 2018-6-1 09:17
你接红外的引脚到底是PA还是PD啊,而且你引脚要设置成上拉输入,多注意细节。

哦,我后面才发现,改成了上拉输入,管脚也对应,还是闪
回复

使用道具 举报

6#
ID:342996 发表于 2018-6-1 17:16 | 只看该作者
建议你先查硬件:
1、用按钮实现高低电平切换,代替红外检测装置,接 输入引脚,看输出变化;
2、万用表量一下 红外检测装置 的信号电平
回复

使用道具 举报

7#
ID:264970 发表于 2018-6-1 18:29 | 只看该作者
这是硬件问题吧
回复

使用道具 举报

8#
ID:319344 发表于 2018-6-1 20:54 | 只看该作者
探路 发表于 2018-5-31 21:52
对准人的时候用mdk自带的逻辑分析仪测GPIOA_Pin_8的电平总为低电平,灯一闪一闪的,求大神解答

检测GPIOA_Pin_8是用的MDK自带的逻辑分析仪,但那并不能代表实际情况,而实际情况是该GPIO口接的灯一闪一闪的,携带信息的红外线是高低电平交错的,我觉得这能解释为什么灯会一闪一闪的。你的程序是GPIOA_Pin_8为低电平灯亮,是吧?  如果我的想法正确,将else 执行的语句去掉应该就不会一闪一闪的了
回复

使用道具 举报

9#
ID:229016 发表于 2018-6-1 20:59 | 只看该作者
yunfei_han@163. 发表于 2018-6-1 17:16
建议你先查硬件:
1、用按钮实现高低电平切换,代替红外检测装置,接 输入引脚,看输出变化;
2、万用表 ...

感觉这个模块太坑,代码都每变过,时灵时不灵
回复

使用道具 举报

10#
ID:185112 发表于 2018-8-1 10:07 | 只看该作者
优化软件,扫地机应用或用速度更快的能跑200M的有AT32F403
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表