Files
2026-05-21 08:07:16 +08:00

35 lines
1.3 KiB
C

#ifndef __LIGHTSENSOR_H
#define __LIGHTSENSOR_H
#include "stm32f10x.h"
// 光敏电阻引脚定义
#define LIGHT_SENSOR_PIN GPIO_Pin_0
#define LIGHT_SENSOR_PORT GPIOB
#define LIGHT_SENSOR_ADC_CH ADC_Channel_8 // PB0 对应 ADC1 通道8
// 补光灯引脚定义
#define FILL_LIGHT_PIN GPIO_Pin_1
#define FILL_LIGHT_PORT GPIOB
// 补光灯控制宏(根据实际电路调整,假设高电平点亮)
#define FILL_LIGHT_ON() GPIO_SetBits(FILL_LIGHT_PORT, FILL_LIGHT_PIN)
#define FILL_LIGHT_OFF() GPIO_ResetBits(FILL_LIGHT_PORT, FILL_LIGHT_PIN)
// 光线阈值配置(可根据实际环境调整)
#define LIGHT_THRESHOLD_LOW 1500 // 低于此值开灯(光线暗)
#define LIGHT_THRESHOLD_HIGH 2000 // 高于此值关灯(光线亮)
// 使用迟滞区间避免频繁开关
// 函数声明
// 函数作用:初始化光敏电阻 ADC 输入和补光灯 GPIO 输出。
void LightSensor_Init(void);
// 函数作用:读取光敏电阻 ADC 当前采样值。
uint16_t LightSensor_GetValue(void);
// 函数作用:根据当前光照强度和迟滞阈值更新补光灯开关状态。
void LightSensor_Update(void);
// 函数作用:返回补光灯当前是否处于点亮状态。
uint8_t LightSensor_IsLightOn(void);
#endif