STM32单片机入门学习(六)-光敏传感器控制LED

光敏传感器模块和LED接线

LED负极接B12,正极接VCC

光敏传感模块一DO端接B13,GND接GND,VCC接VCC,AO不接。

如图:

主程序代码:main.c
cpp 复制代码
#include "stm32f10x.h"
#include "Delay.h"     //delay函数所在头文件
#include "LED.h"
#include "LightSensor.h"

int main(void)
{	
	LED_Init();   //初始化LED
	LED_OFF();		//默认LED灭
	
	LightSensor_Init(); 	//初始化光敏传感器
	while(1)
		{
			if(get_LightSensorNum() == 1)   //黑暗时LED亮
				{
					LED_ON();
				}
				else
				{
					LED_OFF();
				}
		}
}
LED.h和LED.c

LED.h

cpp 复制代码
#ifndef __LED_H
#define __LED_H


void LED_Init(void);
void LED_ON(void);
void LED_OFF(void);

#endif

LED.c

cpp 复制代码
#include "stm32f10x.h"

void LED_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //设置时钟
	
	GPIO_InitTypeDef GPIOInitStruct;
	
	GPIOInitStruct.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽模式
	GPIOInitStruct.GPIO_Pin = GPIO_Pin_12;     //B12
	GPIOInitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOB, &GPIOInitStruct);
	
	GPIO_SetBits(GPIOB, GPIO_Pin_12); // 不亮
	
}

void LED_ON(void)
{
	GPIO_ResetBits(GPIOB, GPIO_Pin_12); // 亮
}


void LED_OFF(void)
{
	GPIO_SetBits(GPIOB, GPIO_Pin_12); // 不亮
}
LightSensor.h和LightSensorc

LightSensor.h

cpp 复制代码
#ifndef __LIGHTSENSOR_H
#define __LIGHTSENSOR_H


void LightSensor_Init(void);
unsigned char get_LightSensorNum(void);
	
#endif

LightSensor.c

cpp 复制代码
#include "stm32f10x.h"
#include "Delay.h" 


//初始化LightSensor
void LightSensor_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //设置时钟
	
	GPIO_InitTypeDef GPIOInitStruct;
	
	GPIOInitStruct.GPIO_Mode = GPIO_Mode_IPU;    //上拉模式
	GPIOInitStruct.GPIO_Pin = GPIO_Pin_13;     //B13
	GPIOInitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOB, &GPIOInitStruct);
}



//获取传感器结果
uint8_t get_LightSensorNum(void)
{
	return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);
}
整体工程文件如下:

相关推荐
遇见尚硅谷25 分钟前
C语言:20250728学习(指针)
c语言·开发语言·数据结构·c++·笔记·学习·算法
Aronup36 分钟前
NLP学习开始01-线性回归
学习·自然语言处理·线性回归
Cyrus_柯39 分钟前
单片机(STM32-ADC模数转换器)
stm32·单片机·嵌入式硬件·adc
南山十一少1 小时前
STM32CubeMX + HAL库:基于DHT11温湿度监测实现
stm32·单片机·嵌入式硬件
Hallin_Me2 小时前
单片机的第一个程序—LED灯的控制
单片机·嵌入式硬件
墨迹的陌离2 小时前
【Linux】重生之从零开始学习运维之Mysql
linux·运维·服务器·数据库·学习·mysql
幻风_huanfeng3 小时前
学习人工智能所需知识体系及路径详解
人工智能·学习
试着3 小时前
零基础学习性能测试第六章:性能难点-Jmeter文件上传场景压测
学习·jmeter·零基础·性能测试
小一亿4 小时前
【0基础PS】PS工具详解--选择工具--对象选择工具
学习·平面·adobe·信息可视化·传媒·photoshop
cyr___4 小时前
Unity教程(二十四)技能系统 投剑技能(中)技能变种实现
学习·游戏·unity·游戏引擎