與之前的點亮LED類似
先配置GPIO口,再實現功能
(高電平開啓,低電平關閉)
寄存器版
管腳PC3
void beep_config(void)
{
//首先開時鐘 GPIOC管腳時鐘在APB2的第四位
RCC->APB2ENR |=(0x01<<4);
//推輓輸出 (高電平開啓)
GPIOC->CRL &=~(0x0f<<12);
GPIOC->CRL |=(0x03<<12);
}```
```c
void beep_ing(void)
{
//高電平開啓
GPIOC->ODR |=(0x01<<3);
//延時
delay_nms(1000);
//低電平關閉
GPIOC->ODR &=~(0x01<<3);
//延時
delay_nms(1000);
}
庫函數版
//配置函數
void beep_config(void)
{
//先定義結構體(結構體內是配置beep引腳所需要的變量)
GPIO_InitTypeDef beep;
//同樣 開時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
//配置
beep.GPIO_Pin=GPIO_Pin_3;// PC3
beep.GPIO_Speed=GPIO_Speed_50MHz;
beep.GPIO_Mode=GPIO_Mode_Out_PP;
//根據前邊配置的結構體變量 來初始化外設
GPIO_Init(GPIOC,&beep);
}
//功能函數
void beep_ing(void)
{
//指定引腳配置高電平
GPIO_SetBits(GPIOC,GPIO_Pin_3);
delay_nms(1000);
//拉低指定引腳電平
GPIO_ResetBits(GPIOC,GPIO_Pin_3);
delay_nms(1000);
}