1.IrDA.h
#ifndef __IrDA_H
#define __IrDA_H
#include "stm32f10x.h" // Device header
#include "sys.h"
#define IrDA_GPIO_CLK RCC_APB2Periph_GPIOB //GPIOBʱÖÓ
#define IrDA_GPIO_PORT GPIOB //GPIOB
#define IrDA_GPIO_Pin GPIO_Pin_0 //Pin_0
void IrDA_Init(void);
u8 IrDA_GetVal(void);
#endif
2.IrDA.c
#include "IrDA.h"
void IrDA_Init(void)
{
RCC_APB2PeriphClockCmd(IrDA_GPIO_CLK, ENABLE); //ʹÄÜGPIOB¶Ë¿ÚʱÖÓ
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = IrDA_GPIO_Pin; //PB0
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //¸¡¿ÕÊäÈë
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz
GPIO_Init(IrDA_GPIO_PORT, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOB
}
u8 IrDA_GetVal(void)
{
return GPIO_ReadInputDataBit(IrDA_GPIO_PORT,IrDA_GPIO_Pin);
}
3.main
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "sys.h"
#include "stdio.h"
#include "string.h"
#include "Led.h"
#include "Key.h"
#include "Beep.h"
#include "Usart.h"
#include "Adc.h"
#include "OLED.h"
#include "IrDA.h"
int main(void)
{
Led_Init();
Key_Init();
Beep_Init();
Usart1_Init(115200);
IrDA_Init();
while(1)
{
//¼ì²âµ½ÕÏ°ÎïÌå·µ»Ø0 ·´Ö®Ôò1
printf("%d \r\n",IrDA_GetVal());
Delay_s(1);
}
}