BEEP蜂鳴器

與之前的點亮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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章