本人正在学习stm8,使用IAR编程,求代码把蜂鸣器弄响

发布网友 发布时间:2022-04-20 07:22

我来回答

3个回答

热心网友 时间:2023-07-14 17:51

void main(void)
{
unsigned char state=0;//状态
Gpio_Init();//端口初始化
Led_Init();//LED初始化
CLK_LSEConfig(CLK_LSE_ON); //打开 LSE 时钟
while(CLK_GetFlagStatus(CLK_FLAG_LSERDY)== RESET);//等待 LSE 稳定
CLK_PeripheralClockConfig(CLK_Peripheral_BEEP, ENABLE);//使能 BEEP 外设时钟
CLK_BEEPClockConfig(CLK_BEEPCLKSource_LSE);//配置 BEEP 的时钟源为 LSE
while (1)
{
if( GPIO_READ(GPIOB,GPIO_Pin_0)==0){
switch(state){ //状态机,选择功能。
case 1:BEEP_Init(BEEP_Frequency_1KHz);//1KHZ 方波驱动BEPP
BEEP_Cmd(ENABLE);//使能输出 发声
LED1_1(); //LED 显示当前状态
LED2_0();
break;
case 2:BEEP_Init(BEEP_Frequency_2KHz);//2KHZ 方波驱动BEPP
BEEP_Cmd(ENABLE);//使能输出 发声
LED1_0();//LED 显示当前状态
LED2_1();
break;
case 3:BEEP_Init(BEEP_Frequency_4KHz);//4KHZ 方波驱动BEPP
BEEP_Cmd(ENABLE);//使能输出 发声
LED1_1();//LED 显示当前状态
LED2_1();
break;
default:state=0;

break;
}
}
LED1_0();//LED 显示当前状态

LED2_0();
delay_ms(1000);//延时,让用户听一会BEEP出声
BEEP_Cmd(DISABLE); //关输出
delay_ms(500); //延时,区分两个频率的声音
state++; //下一个状态
}
}
自己写的一个小程序 ,拿走不谢

热心网友 时间:2023-07-14 17:51

蜂鸣器分有源和无源两种,有源的是加上电源就会发声的,而无源的除了加电,还必须输入要发声的信号。你的问题是否已经排除这个问题了呢;

热心网友 时间:2023-07-14 17:52

什么叫能动作,不会响?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com