STM32控制蜂鸣器

  本文练习硬件使用STM32F103C8芯片开发板,软件使用Keil5-5.23版本安装对应Keil4兼容包,使用Keil4标准库函数开发,练习目的为掌握STM32单片机操作方法,最终独立完成相关项目,为巩固学习并分享学习经验现分享如下:

蜂鸣器相关操作

1.1 相关函数定义

  1. delay.h
    #ifndef __DELAY_H
    #define __DELAY_H 			   
    #include "sys.h"
    
    void delay_s(u16 s);
    void delay_ms(u16 ms);
    void delay_us(u32 us);
    
    #endif
    
  2. delay.c
    #include "delay.h"
    #define AHB_INPUT  72  //请按RCC中设置的AHB时钟频率填写到这里(单位MHz)
    
    void delay_us(u32 uS){
          //uS微秒级延时程序(参考值即是延时数,72MHz时最大值233015)	
        SysTick->LOAD=AHB_INPUT*uS;      //重装计数初值(当主频是72MHz,72次为1微秒)
        SysTick->VAL=0x00;        //清空定时器的计数器
        SysTick->CTRL=0x00000005;//时钟源HCLK,打开定时器
        while(!(SysTick->CTRL&0x00010000)); //等待计数到0
        SysTick->CTRL=0x00000004;//关闭定时器
    }
    
    void delay_ms(u16 ms){
          //mS毫秒级延时程序(参考值即是延时数,最大值65535)	 		  	  
        while( ms-- != 0){
         
            delay_us(1000);	//调用1000微秒的延时
        }
    }
    
    void delay_s(u16 s){
          //S秒级延时程序(参考值即是延时数,最大值65535)	 		  	  
        while( s-- != 0){
         
        delay_ms(1000);	//调用1000毫秒的延时
    }
    } 
    
  3. buzzer.h
    #ifndef __BUZZER_H
    #define __BUZZER_H	 
    #include "sys.h"
    #define BUZZERPORT	GPIOB	//定义IO接口
    #define BUZZER	GPIO_Pin_5	//定义IO接口
    
    void BUZZER_Init(void);//初始化
    void BUZZER_BEEP1(void);//响一声
    void MIDI_PLAY(void);                    
    #endif
    
  4. buzzer.c
     #
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值