当前位置: 首页 > news >正文

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

 光敏传感器模块和LED接线

LED负极接B12,正极接VCC

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

如图:

主程序代码:main.c
#include "stm32f10x.h"
#include "Delay.h"     //delay函数所在头文件
#include "LED.h"
#include "LightSensor.h"int main(void)
{	LED_Init();   //初始化LEDLED_OFF();		//默认LED灭LightSensor_Init(); 	//初始化光敏传感器while(1){if(get_LightSensorNum() == 1)   //黑暗时LED亮{LED_ON();}else{LED_OFF();}}
}
 LED.h和LED.c

LED.h

#ifndef __LED_H
#define __LED_Hvoid LED_Init(void);
void LED_ON(void);
void LED_OFF(void);#endif

LED.c

#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;     //B12GPIOInitStruct.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

#ifndef __LIGHTSENSOR_H
#define __LIGHTSENSOR_Hvoid LightSensor_Init(void);
unsigned char get_LightSensorNum(void);#endif

LightSensor.c

#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;     //B13GPIOInitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIOInitStruct);
}//获取传感器结果
uint8_t get_LightSensorNum(void)
{return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);
}
整体工程文件如下:

http://www.lryc.cn/news/188156.html

相关文章:

  • MFC 鼠标悬停提示框
  • 大数据学习,涉及哪些技术?
  • Clion中使用C/C++开发stm32程序
  • JavaScript Web APIs第五天笔记
  • [ICCV-23] Paper List - 3D Generation-related
  • Transformer为什么如此有效 | 通用建模能力,并行
  • 【初识Jmeter】【接口自动化】
  • C:数组传值调用和传地址调用
  • Python数据容器——字典的常用操作(增、删、改、查)
  • JavaScript入门——(5)函数
  • 数据库sql查询成绩第二高
  • 十五、异常(5)
  • 途虎养车上市、京东养车“震虎”,如何突围汽车后市场?
  • 【算法与数据结构】--算法基础--算法入门
  • AnyDesk密钥
  • C#(Csharp)我的基础教程(二)(我的菜鸟教程笔记)-属性和字段的探究与学习
  • Programming abstractions in C阅读笔记:p176-p178
  • LeetCode-496-下一个更大元素
  • C++中的Lambda表达式
  • dockerfile搭建lnmp
  • python之数据库操作详解
  • 完成flex布局与float布局
  • ThinkPHP团购拼购商城源码/带分销团购商城网站源码/完美版
  • awvs 中低危漏洞
  • openGauss学习笔记-95 openGauss 数据库管理-访问外部数据库-postgres_fdw
  • 并不止于表面理论和简单示例——《Python数据科学项目实战》
  • skywalking功能介绍
  • c++桥接模式,中介者模式应用实现状态跳转
  • 【SpringCloud】Ribbon负载均衡原理、负载均衡策略、饥饿加载
  • 亘古难题——前端开发or后端开发