嵌入式系统之蜂鸣器
一、硬件連接
??????? 1. 查看電路圖蜂鳴器的連接口,這里以PB8連接蜂鳴器為例,PB8輸出高電平蜂鳴器發(fā)聲,PB8輸出低電平蜂鳴器停止。
??????? 2. 相關(guān)函數(shù):初始化函數(shù)GPIO_Init(GPIOx, GPIO_InitStruct)、輸出高電平函數(shù)GPIO_SetBits(GPIOx,GPIO_Pin_n)、輸出低電平函數(shù)GPIO_ResetBits(GPIOx,GPIO_Pin_n)
二、庫(kù)函數(shù)/位帶操作版本
??????? 1.定義器件頭文件beep.h
??????? 2. 寫初始化函數(shù)BEEP_Init()
??????????? (1)定義IO口的初始化結(jié)構(gòu)體GPIO_InitStructure(管腳、模式、速度)
????????????????GPIO_InitTypeDef? GPIO_InitStructure;
????????????????GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;?? 8號(hào)管腳 ?? ??? ???
??????????????? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; ?? ?? 推挽輸出
??????????????? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;?? ? 翻轉(zhuǎn)速度位50MHz
??????????????? 可以選中GPIO_InitTypeDef右鍵,點(diǎn)擊“GO To Definition Of GPIO_InitTypeDef”查找這 ????????????????個(gè)函數(shù)在庫(kù)文件中的具體定義是什么,如下圖所示
?????????? (2)使能IO口時(shí)鐘,調(diào)用函數(shù)
RCC_APB2PeriphClockCmd(RCC_APB2Periph+GPIOx,ENABLE);
?????????? (3)根據(jù)參數(shù)初始化IO口:GPIO_Init(GPIOB, &GPIO_InitStructure)
?????????? (4)將PB8置為0關(guān)閉蜂鳴器:GPIO_ResetBits(GPIOB,GPIO_Pin_8)
??????? 3. 操作IO口輸出高低電平[在beep.h中定義#define BEEP PBout(8),即可用BEEP代替PBout(8)
??????????? 使得程序的可讀性更強(qiáng)]
?三、寄存器版本
??????? 1. 配置beep.h(同上)
??????? 2. 配置初始化函數(shù)BEEP_Init()????????
?????????? (1)使能IO口時(shí)鐘,配置寄存器RCC->APB2ENR
?????????? (2)配置IO口的工作模式(低位0-7配置CRL,高位8-15配置CRH)
?????????????? 配置寄存器GPIOB->CRH
?????????? (3)使IO口輸出高/低電平,配置GPIOB->ODR或GPIOB->BSRR/BRR
???????? 3. 主函數(shù)的編寫
?
總結(jié)
- 上一篇: python正则匹配字符串中的数字_Py
- 下一篇: 电脑知识:Win10系统把系统盘的软件移