新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM8S蜂鳴器的應用

        STM8S蜂鳴器的應用

        作者: 時間:2016-11-26 來源:網絡 收藏
        前段時間都是自己裸機(自己寫寄存器)編的程序,以前接觸過STM32知道有STM公司有固件函數庫,可以使用固件函數庫來操作,在使用庫文件中最頭疼的問題就是H文件的調用,所以一直沒有使用,一時心血來潮決定在STM8S中試試,在網上參考了一下,找到官網上的固件函數庫,添加頭文件,對工程進行一些列的配置,還好好使了。呵呵!

        本文引用地址:http://www.104case.com/article/201611/321592.htm

        #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);
        }
        }



        關鍵詞: STM8S蜂鳴

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 德令哈市| 酉阳| 合肥市| 小金县| 合江县| 淳安县| 宜川县| 灵宝市| 彝良县| 青海省| 景泰县| 新巴尔虎左旗| 九寨沟县| 定南县| 合肥市| 西平县| 武陟县| 宣城市| 介休市| 武乡县| 和硕县| 武汉市| 迁安市| 武功县| 遂溪县| 峨山| 龙川县| 静海县| 合山市| 车致| 定结县| 顺昌县| 祥云县| 怀柔区| 应城市| 曲靖市| 丰宁| 手游| 斗六市| 博客| 响水县|