如果红外光电开关检测到障碍物,蜂鸣器响,RGBLED 显示红色,如果没有检测到障碍物,蜂鸣器不响,RGBLED 显示绿色
注意:添加一个 InfraredPSwitch.c 和 InfraredPSwitch.h 文件
InfraredPSwitch.h 文件里面,对红外光电开关使用的引脚和端口进行宏定义
InfraredPSwitch.c 文 件 里 面 , 设 计 一 个 InfraredPSwitch_Init 函 数 , 一 个
InfraredPSwitch_Check()函数,返回值为检测到的状态值
如有好的建议还望不吝赐教嚛
直接上代码
InfrarePSwitch_H
#ifndef __InfrarePSwitch_H
#define __InfrarePSwitch_H
#include "sys.h"
#define sign GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_1)
void InfrarePSwitch_Init(void);
void InfrarePSwitch_Check(void);
#endif
InfrarePSwitch.c
#include "sys.h"
#include "delay.h"
#include "RGBLED.h"
#include "BEEP.h"
#include "usart.h"
#include "InfrarePSwitch.h"
//初始化PF1口读取光电开关电平
void InfrarePSwitch_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOF, &GPIO_InitStructure);
GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_1);
}
void InfrarePSwitch_Check(void)
{
//GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_1);
if(sign == 0)
{
RGBLED_Display(RED, 1);
BEEP = 0;
}else
{
RGBLED_Display(GREEN, 1);
BEEP = 1;
}
}`
关于RGBLED_Display();还请参见第一篇笔记。
链接呈上 https://mp.csdn.net/mdeditor/90343426#
注意: 采用电源模块为红外光电供电时,注意GND和VCC的连接。
将两个线都接在电源模块上;不要一根接在电源模块,另一根接在开发板上。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』