您的位置 首页 基础

STM8S蜂鸣器的使用

前段时间都是自己裸机(自己写寄存器)编的程序,以前接触过STM32知道有STM公司有固件函数库,可以使用固件函数库来操作,在使用库文件中最

前段时间都是自己裸机(自己写寄存器)编的程序,曾经触摸过STM32知道有STM公司有固件函数库,能够运用固件函数库来操作,在运用库文件中最头疼的问题便是H文件的调用,所以一向没有运用,一时心血来潮决定在STM8S中试试,在网上参阅了一下,找到官网上的固件函数库,增加头文件,对工程进行一些列的装备,还好好使了。呵呵!

#include “stm8s.h”
#include “stm8s_beep.h”
#include “stm8s_flash.h”
#include “stm8s_clk.h”
#include “stm8s_gpio.h”



#define BEEP_PORT GPIOD
#define BEEP_PIN GPIO_PIN_4

//留意,运用本程序前需求运用
//st visual programmer 把 Option Bytes 里
//AFR7改为”Port D4 Alternate Function = Beep”,不然没有声音
//因为新增了在程序里修正AFR7改为”Port D4 Alternate Function = Beep”

//Fcpu = 4MHz/1 = 4MHz

void delay_ms(u16 time)
{
u16 i;
for(;time>0;time–)
for(i=0;i<670;i++); //241
}

void FLASH_INIT(void)
{
FLASH_DeInit();
FLASH_Unlock(FLASH_MEMTYPE_DATA);
FLASH_SetProgrammingTime(FLASH_PROGRAMTIME_STANDARD);
}

void CLK_INIT(void)
{
CLK_DeInit();
//CLK_HSECmd(ENABLE);

CLK_HSICmd(ENABLE);


CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);


CLK_ClockSecuritySystemEnable();
}

void GPIO_INIT(void)
{
GPIO_DeInit(GPIOA);
GPIO_DeInit(GPIOB);
GPIO_DeInit(GPIOC);
GPIO_DeInit(GPIOD);
GPIO_DeInit(GPIOE);

}

void main ( void )
{

CLK_INIT();//设置外部时钟
GPIO_INIT();//初始化IO

FLASH_INIT();//初始化FLASH

//PD4第二功用脚不是beep功用,就强制写成beep
if(FLASH_ReadOptionByte(0x4803) != 0x807F)
{
FLASH_ProgramOptionByte(0x4803,0x80);//将PD4的第二功用脚写成beep
WWDG->CR = 0x80;//复位stm8
}

//BEEP_LSICalibrationConfig(128000);
BEEP_LSICalibrationConfig(95000);//此处修正输入参数**************************************************
BEEP_Init(BEEP_FREQUENCY_2KHZ);
BEEP_Cmd(ENABLE);

while(1)
{
//delay(1000);
delay_ms(500);
BEEP_Cmd(ENABLE);
//delay(1000);
delay_ms(500);
BEEP_Cmd(DISABLE);
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/257864.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部