STM32:光敏电阻控制蜂鸣器

简介: STM32:光敏电阻控制蜂鸣器

1.主函数部分:


6184d6f8486144159245ab4d77fc3e06.png

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "Buzzer.h"
#include "LightSensor.h"
int main(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
  GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStruct);
    while(1)
    {
        if(LightSensor_Get()==1)
            Buzzer_ON();
        else
            Buzzer_OFF();
    }
}


2.蜂鸣器(Buzzer.c)部分:


a4999adf76724a449e52aeb8d1fc2c3e.png


#include "stm32f10x.h"                  // Device header
void Buzzer_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_12;
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStruct);
}
void Buzzer_ON(void)
{
    GPIO_ResetBits(GPIOB,GPIO_Pin_12);
}
void Buzzer_OFF(void)
{
    GPIO_SetBits(GPIOB,GPIO_Pin_12);
}

Buzzer.h部分:


022ca018f4b64d6685bfd44064dc49db.png

#ifndef  __BUZZER_H
#define  __BUZZER_H
void Buzzer_Init(void);
void Buzzer_ON(void);
void Buzzer_OFF(void);
#endif

3.光敏电阻(LightSensor.c)部分:


f983fb204b864594af9a0615f4327ebb.png

#include "stm32f10x.h"                  // Device header
void LightSensor_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}
uint8_t LightSensor_Get(void)
{
    return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);
}

LightSensor.h:


0676da54643c42949fa8e8d5dea19e65.png

#ifndef __LIGHT_SENSOR_H
#define __LIGHT_SENSOR_H
void LightSensor_Init(void);
uint8_t LightSensor_Get(void);
#endif
相关文章
|
编译器
stm32使用CubeMx配置蜂鸣器
stm32使用CubeMx配置蜂鸣器
1181 0
STM32控制蜂鸣器间隔发出声音(响1s,关闭1s)
STM32控制蜂鸣器间隔发出声音(响1s,关闭1s)
374 1
stm32f407探索者开发板(七)——蜂鸣器实验
stm32f407探索者开发板(七)——蜂鸣器实验
246 0
stm32f407探索者开发板(七)——蜂鸣器实验
|
传感器
STM32小项目总结1(部分基础知识+LED+蜂鸣器+按键控制LED+OLED显示屏+光敏传感器控制蜂鸣器)
STM32小项目总结1(部分基础知识+LED+蜂鸣器+按键控制LED+OLED显示屏+光敏传感器控制蜂鸣器)
703 0
STM32小项目总结1(部分基础知识+LED+蜂鸣器+按键控制LED+OLED显示屏+光敏传感器控制蜂鸣器)
STM32:GPIO控制蜂鸣器部分(只写主函数代码部分+代码注释)
STM32:GPIO控制蜂鸣器部分(只写主函数代码部分+代码注释)
397 0
STM32:GPIO控制蜂鸣器部分(只写主函数代码部分+代码注释)
【STM32 .Net MF开发板学习-06】蜂鸣器和LED数码管显示
无论是蜂鸣器还是LED数码管显示,其实这二者对代码编写来说没有太大区别,都是GPIO的一个典型应用。红牛开发板有一个蜂鸣器,而EM-STM3210E有一个四位LED数码管,代码都相对简单,不值的为二者单独写一篇博文,所以二者合一以一篇文章来说明,不过两个示例代码是独立的。
671 0
|
5月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
447 2
|
4月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
715 0
|
5月前
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
509 4