驅(qū)動(dòng)蜂鳴器與雞翅LED是一樣的,對(duì)于I.MX6ULL
來說只需要對(duì)指定的引腳輸出高或者低電平即可。
找到蜂鳴器使用的引腳
打開I.MX6ULL
開發(fā)板原理圖,找到蜂鳴器接的引腳
可以看出,蜂鳴器正極接的是三極管,負(fù)極接地,想讓蜂鳴器工作就需要讓三極管導(dǎo)通。這是一個(gè)PNP
型三極管,基極
接的是BEEP,想讓三極管導(dǎo)通蜂鳴器工作需要給BEEP一個(gè)低電平。
再看一下BEEP具體接的是I.MX6ULL
的哪一個(gè)管腳
從圖中可以看出,BEEP具體接的是SNVS TAMPER1
初始化BEEP對(duì)應(yīng)引用
從I.MX6ULL
的參考手冊(cè)里面的32.5.4
小節(jié)中可以找到關(guān)于SNVS TAMPER1
寄存器,現(xiàn)在需要將他復(fù)用成通用GPIO
,通過查看手機(jī)復(fù)用之后是GPIO5_IO01
,所以在初始化蜂鳴器GPIO
時(shí)也就是將SNVS TAMPER1
寄存器復(fù)用成GPIO5_IO01
:
复制 IOMUXC_SetPinMux(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01, 0);
同時(shí)設(shè)置GPIO5_IO01
的電氣屬性為:
复制 IOMUXC_SetPinConfig(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01, 0x10B0);
設(shè)置GPIO5_IO01
的輸入輸出:
复制 /// 設(shè)置GPIO5的第1位即IO01為輸出,默認(rèn)電平為低電平
PIO_Init(GPIO5, 1, (GPIO_CONFIG){GPIO_DIRECTION_OUTPUT, 0});
控制蜂鳴器
控制GPIO5_IO01
的DR
寄存器,通過寫入低(0)電平來打開蜂鳴器,寫入高電平(1)來關(guān)閉蜂鳴器。
复制 void Beep_On()
{
GPIO_SetValue(GPIO5, 1, 0);
}
void Beep_Off()
{
GPIO_SetValue(GPIO5, 1, 1);
}
驗(yàn)證
在main
文件中對(duì)應(yīng)的開LED
燈的位置打開蜂鳴器,關(guān)燈的地方關(guān)閉蜂鳴器。
复制 #include
#include "delay.h"
#include "clk.h"
#include "led.h"
#include "beep.h"
int main(void)
{
Clk_Init();
Led_Init();
Beep_Init();
while (1)
{
Delay(500);
Led_On();
Beep_On();
Delay(500);
Led_Off();
Beep_Off();
}
return 0;
}
最后,通過Makefie
編譯成bee.bin并燒寫到開發(fā)板即可聽到蜂鳴器工作了。
-
led
+關(guān)注
關(guān)注
242文章
23558瀏覽量
667835 -
蜂鳴器
+關(guān)注
關(guān)注
12文章
893瀏覽量
46373 -
IMX6ULL
+關(guān)注
關(guān)注
3文章
16瀏覽量
4235
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何利用PWM驅(qū)動(dòng)蜂鳴器
MISC蜂鳴器驅(qū)動(dòng)實(shí)驗(yàn)-迅為imx6ULL開發(fā)板編譯驅(qū)動(dòng)及運(yùn)行測(cè)試
功率驅(qū)動(dòng)級(jí)驅(qū)動(dòng)蜂鳴器電路

蜂鳴器驅(qū)動(dòng)實(shí)驗(yàn)

蜂鳴器音樂播放實(shí)驗(yàn)

蜂鳴器的分類_單片機(jī)驅(qū)動(dòng)蜂鳴器_蜂鳴器的應(yīng)用
蜂鳴器的基本驅(qū)動(dòng)示例
使用單片機(jī)進(jìn)行驅(qū)動(dòng)蜂鳴器實(shí)驗(yàn)的詳細(xì)資料說明

嵌入式PWM驅(qū)動(dòng)蜂鳴器實(shí)驗(yàn)

51單片機(jī)蜂鳴器實(shí)驗(yàn)

Step2:【C51】蜂鳴器發(fā)聲實(shí)驗(yàn)

51單片機(jī)實(shí)驗(yàn)-蜂鳴器播放音樂

51單片機(jī) 驅(qū)動(dòng)有源/無源蜂鳴器+Proteus仿真

STM32實(shí)例-蜂鳴器實(shí)驗(yàn)

評(píng)論