Stm32f103c8t6(proteus仿真)学习 | 您所在的位置:网站首页 › 单片机按钮控制蜂鸣器 › Stm32f103c8t6(proteus仿真)学习 |
目录
**一、有源蜂鸣器原理图****1.PNP接法****2.NPN接法**
**二、有源蜂鸣器代码****三、项目(代码+仿真)分享链接**
一、有源蜂鸣器原理图
元器件提示 电阻:res 蜂鸣器:buzzer 1.PNP接法看VCC和地哪一个直接接在蜂鸣器上 PNP接法:低电平触发 2.NPN接法看VCC和地哪一个直接接在蜂鸣器上 NPN接法:高电平触发 二、有源蜂鸣器代码和LED灯一样,驱动GPIO引脚变成指定电平即可触发 buzzer.c文件 #include "buzzer.h" #include "stm32f10x.h" void BUZZER_Init(void) { //声明一个结构体,名字是GPIO_InitStructure GPIO_InitTypeDef GPIO_InitStructure; //使能GPIOC的时钟,ENABLE代表使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//GPIOC //设置引脚为推挽输出Out_PP GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //定义引脚为哪一号引脚,GPIO_Pin_13就是13号引脚 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13|GPIO_Pin_15; //设置引脚的速度50MHz GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //初始化GPIO,初始化哪个引脚就对应哪个 GPIO_Init(GPIOC,&GPIO_InitStructure);//初始化GPIOC,所以引脚对应PC13和PC15 GPIO_SetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_15); //PC13和PC15引脚拉高电平 }buzzer.h头文件 #ifndef __BUZZER_H #define __BUZZER_H void LED_Init(void); #endifmain.c文件 PNP接法:低电平触发 #include "stm32f10x.h" #include "buzzer.h" #include "delay.h" int main(void) { delay_init(); LED_Init(); while(1){ //pnp接法 GPIO_ResetBits(GPIOC,GPIO_Pin_13); // 低电平触发 delay_ms(100); //响100ms GPIO_SetBits(GPIOC,GPIO_Pin_13); delay_ms(500); //停500ms } }NPN接法:高电平触发 #include "stm32f10x.h" #include "buzzer.h" #include "delay.h" int main(void) { delay_init(); LED_Init(); while(1){ //npn接法 GPIO_SetBits(GPIOC,GPIO_Pin_15); // 高电平触发 delay_ms(200); //响200ms GPIO_ResetBits(GPIOC,GPIO_Pin_15); delay_ms(400); //停400ms } } 三、项目(代码+仿真)分享链接百度网盘 链接:https://pan.baidu.com/s/1pcVtAcER2mAwnQnyRL3aXQ 提取码:p8q4 |
CopyRight 2018-2019 实验室设备网 版权所有 |