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