stm32学习随笔23.11.6_2
LED&光敏电阻&蜂鸣器(伪)变频报警,随笔记录视频B站:BV1tG411971D
MAIN.c
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "BUZZER.h"
#include "LightSensor.h"
#include "LED.h"
//
int main(void)
{
LightSensor_Init();
BUZZER_Init();
LED_Init();
while(1)
{
if(LightSensor_Get()==1)
{
LED_On(7);
BUZZER_Turn();
}
else
{
LED_Off(7);
BUZZER_Off();
}
BUZZER.c
#include "stm32f10x.h" // Device header
#include "Delay.h"
void BUZZER_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//启用系统寄存器时钟,使能GPIOC组,并启动
GPIO_InitTypeDef GPIO_InitStructure; //初始化GPIO_Init后需要定义一个结构体配置信息,根据stm32f10x_gpio.c文件要求需要定义
/*
以下三项定义与stm32f10x_gpio.h文件中选择
Mode模式Pin引脚Speed速度即频率
*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;//OUT OD开漏输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化结构体配置信息,并指向上4列代码配置信息
GPIO_SetBits(GPIOB,GPIO_Pin_12);//设置高电平
}
/*
*brief 简 介:打开开关蜂鸣器低电平
*param 参 数:无
*retval 返回值:无
*/
void BUZZER_On(void)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_12);//设置低电平
}
/*
*brief 简 介:关闭蜂鸣器开关高电平
*param 参 数:无
*retval 返回值:无
*/
void BUZZER_Off(void)
{
GPIO_SetBits(GPIOB,GPIO_Pin_12);//设置高电平
}
/*
*brief 简 介:获取引脚电平信号,控制当前蜂鸣器状态取反
*param 参 数:无
*retval 返回值:无
*/
void BUZZER_Turn(void)
{
if(GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12)==0)
{
GPIO_SetBits(GPIOB,GPIO_Pin_12);//设置高电平
Delay_ms(700);
}
else
{
GPIO_ResetBits(GPIOB,GPIO_Pin_12);//设置低电平
Delay_ms(100);
}
}
LightSensor.c
#include "stm32f10x.h" // Device header
/*
*brief 简 介:光敏电阻传感器配置初始化
*param 参 数:
*retval 返回值:
*/
void LightSensor_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//启用系统寄存器时钟,使能GPIOC组,并启动
GPIO_InitTypeDef GPIO_InitStructure; //初始化GPIO_Init后需要定义一个结构体配置信息,根据stm32f10x_gpio.c文件要求需要定义
/*
以下三项定义与stm32f10x_gpio.h文件中选择
Mode模式Pin引脚Speed速度即频率
*/
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);//初始化结构体配置信息,并指向上4列代码配置信息
}
uint8_t LightSensor_Get(void)
{
return GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具