STM32光敏传感器控制蜂鸣器
STM32学习记录
·
接线部分
VCC接正极,GND接负极,在蜂鸣器中I/O口接任意引脚都可以(我接的B15),在光敏传感器中DO为数字信号输出接任意引脚,AO模拟信号输出不接

蜂鸣器底层
void Buzzer_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//开启GPIOB时钟
GPIO_InitTypeDef GPIO_InitStructure;//宏定义结构体变量
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//设置为推挽输出模式
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;//设置GPIO的第15号引脚
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//GPIO的速度为50MHZ
GPIO_Init(GPIOB,&GPIO_InitStructure);
}
void Buzzer_On(void)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_15);//将15号引脚设置为低电平
}
void Buzzer_Off(void)
{
GPIO_SetBits(GPIOB,GPIO_Pin_15);//将15号引脚设置为高电平
}
光敏模块底层
void Light_Init(void)
{
//光敏模块,遮光时灯灭,输出高电平;不遮光时灯亮,为低电平
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//配置时钟
GPIO_InitTypeDef GPIO_InitStructure;//定义结构体
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//上拉输入模式,默认为高电平
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//设置GPIO的0号引脚
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度配置为50MHZ
GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化
}
uint8_t Light_Read(void)//光敏模块读取函数
{
return GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);//返回光敏模块读取的数
}
主函数
int main(void)
{
Buzzer_Init();//LED初始化函数
Light_Init();//光敏模块初始化函数
while(1)
{
if(Light_Read()==1)//遮光时
{
Buzzer_On();//蜂鸣器亮
}
else//不遮光
{
Buzzer_Off();//蜂鸣器灭
}
}
}
实现遮光时蜂鸣器发出声音
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)