void BeepInit() //端口初始化
{
GPIO_InitTypeDef GPIO_InitStructure; //GPIO初始化结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //
/* ÅäÖÃGPIOµÄģʽºÍIO¿Ú */
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8; //Ñ¡ÔñÄãÒªÉèÖõÄIO¿Ú
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //ÉèÖÃÍÆÍìÊä³öģʽ
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //ÉèÖô«ÊäËÙÂÊ
GPIO_Init(GPIOC,&GPIO_InitStructure); /* ³õʼ»¯GPIO */
}
void sound1() //救护车报警
{
u32 i=5000;
while(i--) //
GPIO_SetBits(GPIOA,GPIO_Pin_8);
delay(i);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
delay(i--);
}
void sound2() //电动车报警
{
u32 i=1000;
while(i--) //
{
GPIO_SetBits(GPIOA,GPIO_Pin_8); //IO¿ÚÊä³ö¸ßµçƽ
delay(i);
GPIO_ResetBits(GPIOA,GPIO_Pin_8); //IO¿ÚÊä³öµÍµçƽ
delay(i--);
}
}}
void BeepKey()
{
while(1)
{
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0) //
{
//delay_ms(10); //Ïû¶¶´¦Àí
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0) //判断按钮是否按下
{
sound1() ;
}
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0); //等待按钮是否按下
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==0) //Åжϰ´¼üPE1ÊÇ·ñ°´ÏÂ
{
//delay_ms(10); //Ïû¶¶´¦Àí
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==0) //ÔÙ´ÎÅжϰ´¼üPE1ÊÇ·ñ°´ÏÂ
{
sound2();
}
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==0); //µÈ´ý°´¼üËÉ¿ª
}
}
}