Stm32f103c8t6(proteus仿真)学习 您所在的位置:网站首页 单片机按钮控制蜂鸣器 Stm32f103c8t6(proteus仿真)学习

Stm32f103c8t6(proteus仿真)学习

2024-06-15 00:35| 来源: 网络整理| 查看: 265

目录 **一、有源蜂鸣器原理图****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); #endif

main.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 实验室设备网 版权所有