99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文解析蜂鳴器驅(qū)動(dòng)及LED驅(qū)動(dòng)編寫

454398 ? 來源:博客園 ? 作者:z572089387 ? 2020-09-23 15:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一:LED驅(qū)動(dòng)編寫

要編寫LED驅(qū)動(dòng),首先的知道開發(fā)板的構(gòu)造;開發(fā)板分為核心板與底板;編寫驅(qū)動(dòng)的第一步就是要看開發(fā)板,找到LED燈在開發(fā)板上的位置及所對(duì)應(yīng)的名字;第一步就要查看核心板電路圖,以及底板電路圖;最后就是查看開發(fā)板手冊(cè),然后進(jìn)行程序編寫:

通過看開發(fā)板我們可以知道LED燈的位置的核心板上,在核心板上找到LED的電路圖,Ctrl+F可以在文檔中快捷查找:

通過電路圖我們可以看出:LED燈的一端已經(jīng)接高電平,只要給另一端加低電平LED就會(huì)被點(diǎn)亮。

然后查看LED在核心板上的引腳:

一文解析蜂鳴器驅(qū)動(dòng)及LED驅(qū)動(dòng)編寫

由上圖我們可以看出,LED1對(duì)應(yīng)的是GPM4_0

然后通過芯片數(shù)據(jù)手冊(cè)可以查到它的具體用法:

通過手冊(cè)我們可以看出:GPM4CON 置一輸出,表示控制,置零輸入,表示檢測(cè),GPM4DAT表示它的值和引腳的電壓狀態(tài)對(duì)于,值為一時(shí)表示高電平,值為零時(shí)表示底電平,下面貼出代碼:

 1     .global main
 2 main:
 3     mov ip, sp
 4     sub sp, sp, #12
 5     stmdb sp!, {fp, ip, lr}
 6     add fp, sp, #8
 7 
 8     ldr r3, gpmcon
 9     ldr r0, =0x1
10     str r0, [r3]
11 
12     ldr r3, gpmdat
13     ldr r0, =0x0
14     str r0, [r3]
15 
16     add sp, fp, #4
17     ldmdb sp, {fp, sp, pc}    
18 
19 gpmcon:
20     .word 0x110002e0
21 
22 gpmdat:
23     .word 0x110002e4

下面的用C語言代碼是實(shí)現(xiàn)四個(gè)LED燈的閃爍

 1 #define GPM4CON (*(unsigned long *)0x110002e0)//宏定義
 2 #define GPM4DAT (*(unsigned long *)0x110002e4)
 3 
 4 void (*udelay)(int) = 0xc3e25f90;
 5 int main()
 6 {
 7     GPM4CON &= ~0xffff;
 8     GPM4CON |= 0x1111;
 9     
10     while(1) {
11         GPM4DAT |= 0xf;//led off
12         udelay(250000);
13         GPM4DAT &= ~0xf;
14         udelay(250000);//led on
15     }    
16 }

跑馬燈:

 1 #define GPM4CON (*(unsigned long *)0x110002e0)
 2 #define GPM4DAT (*(unsigned long *)0x110002e4)
 3 
 4 void (*udelay)(int) = 0xc3e25f90;
 5 
 6 int main()
 7 {
 8     
 9     GPM4CON &= ~0xffff;
10     GPM4CON |= 0x1111;
11     unsigned long tmp = 0xf;
12 
13     while(1) {
14 
15         if((tmp & 0xf) == 0) {
16             tmp = 0xf;
17         }
18 
19         GPM4DAT = tmp << 1;
20         tmp = GPM4DAT;
21         udelay(250000);
22 
23     }
24 
25 }

流水燈:

 1 #define GPM4CON (*(unsigned long *)0x110002e0)
 2 #define GPM4DAT (*(unsigned long *)0x110002e4)
 3 
 4 void (*udelay)(int) = 0xc3e25f90;
 5 
 6 int main()
 7 {
 8     
 9     GPM4CON &= ~0xffff;
10     GPM4CON |= 0x1111;
11     unsigned long i = 0;
12     while(1) {
13         GPM4DAT = 0xf;
14         GPM4DAT &= ~(1 << i);//流水
15         udelay(500000);//延時(shí)
16         i++;
17         if(i == 4) {
18             i = 0;
19         } 
20     }
21 
22 }

上面程序總用到的延時(shí)函數(shù)udelay(),由于U-Boot作為嵌入式Linux系統(tǒng)的引導(dǎo),不具有標(biāo)準(zhǔn)C庫中的內(nèi)容。要使用像printf函數(shù),延時(shí)函數(shù)udelay(),就需要u-boot中提供的。u-boot函數(shù)內(nèi)容在u-boot源碼文件中就需要u-boot中提供的。u-boot函數(shù)內(nèi)容在u-boot源碼文件中的System.map文件中。System.map文件是被內(nèi)核所使用的符號(hào)表。符號(hào)表是一個(gè)在符號(hào)名稱與它們的存儲(chǔ)器位置間的查詢表格。符號(hào)名稱可能是變量的名稱或是函數(shù)名稱。當(dāng)要查詢符號(hào)名稱的位置或是特定位置的符號(hào)名稱時(shí),就會(huì)需要System.map。找到函數(shù)的對(duì)應(yīng)地址,就可以對(duì)它進(jìn)行使用了;

二:蜂鳴器驅(qū)動(dòng)編寫:

通過開發(fā)板我們可以看出蜂鳴器位于底板:

查看電路圖:

通過查看底板手冊(cè)可知,當(dāng)XpwmTOUT0處于高電平是蜂鳴器就會(huì)響起;通過XpwmTOUT0我們?cè)诤诵陌迳险业剿囊_

然后查看芯片手冊(cè):

由圖我們可以看出GPD0CON為0x1時(shí)控制控制:GPD0DAT為1為高電平:下面貼出匯編代碼:

 1     .global main
 2 main:
 3     mov ip, sp
 4     sub sp, sp, #12
 5     stmdb sp!, {fp, ip, lr}
 6     add fp, sp, #8
 7 
 8     ldr r3, gpdcon
 9     ldr r0, =0x1
10     str r0, [r3]
11 
12     ldr r3, gpmdat
13     ldr r0, =0x1
14     str r0, [r3]
15 
16     add sp, fp, #4
17     ldmdb sp, {fp, sp, pc}    
18 
19 gpdcon:
20     .word 0x114000a0
21 
22 gpmdat:
23     .word 0x114000a4

C語言的代碼:

 1 #define GPD0CON (*(volatile unsigned long*)0x114000a0)
 2 #define GPD0DAT (*(volatile unsigned long*)0x114000a4)
 3 
 4 void (*udelay)(int) = 0xc3e25f90;
 5 int main(void)
 6 {   
 7     GPD0CON =  0x0001;
 8     while(1){
 9         GPD0DAT = 0x1;
10         udelay(250000);
11         GPD0DAT = 0x0;
12         udelay(250000);//延時(shí)
13     }
14     
15     return 0;
16 }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23842

    瀏覽量

    673976
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7649

    瀏覽量

    167361
  • LED驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    72

    文章

    1033

    瀏覽量

    140451
  • 蜂鳴器
    +關(guān)注

    關(guān)注

    12

    文章

    895

    瀏覽量

    46946
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    浮思特 | LED顯示屏驅(qū)動(dòng)IC技術(shù)解析,基礎(chǔ)原理與創(chuàng)新應(yīng)用

    在每塊驚艷的LED顯示屏背后,驅(qū)動(dòng)IC如同精密控制電流的“神經(jīng)中樞”,默默決定著畫面的流暢度、色彩的真實(shí)感與能耗的高低。從戶外巨幕的強(qiáng)韌可靠,到室內(nèi)高清屏的細(xì)膩呈現(xiàn),再到虛擬拍攝的零瑕疵要求
    的頭像 發(fā)表于 06-20 09:59 ?841次閱讀
    浮思特 | <b class='flag-5'>LED</b>顯示屏<b class='flag-5'>驅(qū)動(dòng)</b>IC技術(shù)<b class='flag-5'>解析</b>,基礎(chǔ)原理與創(chuàng)新應(yīng)用

    從簡(jiǎn)單光效到復(fù)雜互動(dòng),玩具LED驅(qū)動(dòng)芯片方案盤點(diǎn)

    電子發(fā)燒友網(wǎng)報(bào)道(/黃山明)如今的不少AI玩具已經(jīng)開始在市面中進(jìn)行售賣,而不論是AI玩具,還是普通玩具,只要能夠使用電源驅(qū)動(dòng),必少不了各種光效的加持,而這背后,需要的事LED驅(qū)動(dòng)器來
    的頭像 發(fā)表于 06-19 00:02 ?3676次閱讀

    讀懂:LED 驅(qū)動(dòng)電路二極管挑選要點(diǎn)

    讀懂:LED 驅(qū)動(dòng)電路二極管挑選要點(diǎn)
    的頭像 發(fā)表于 02-06 14:47 ?580次閱讀

    LED驅(qū)動(dòng)板是如何工作的

    ? 市面上LED產(chǎn)品百花齊放,應(yīng)用場(chǎng)景非常多樣化。很多LED產(chǎn)品需要個(gè)核心部件,就是LED驅(qū)動(dòng)板,本期主要講解它是如何工作的。
    的頭像 發(fā)表于 12-22 14:23 ?1606次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動(dòng)</b>板是如何工作的

    LED驅(qū)動(dòng)電源設(shè)計(jì)四大問題匯總

    LED驅(qū)動(dòng)電源的質(zhì)量好壞將會(huì)直接影響LED的壽命,因此如何做好個(gè)LED驅(qū)動(dòng)電源是
    的頭像 發(fā)表于 11-28 17:14 ?990次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動(dòng)</b>電源設(shè)計(jì)四大問題匯總

    LED驅(qū)動(dòng)器常見故障解決

    LED驅(qū)動(dòng)器是LED照明系統(tǒng)中的關(guān)鍵組件,負(fù)責(zé)將電源電壓轉(zhuǎn)換為適合LED發(fā)光的電壓和電流。LED驅(qū)動(dòng)
    的頭像 發(fā)表于 10-14 17:39 ?5836次閱讀

    led驅(qū)動(dòng)電源測(cè)試方法有哪些

    電源測(cè)試方法 1. 引言 LED(發(fā)光二極管)作為種高效、節(jié)能、環(huán)保的光源,已經(jīng)被廣泛應(yīng)用于各種照明領(lǐng)域。LED驅(qū)動(dòng)電源作為LED照明系統(tǒng)
    的頭像 發(fā)表于 10-14 17:30 ?2147次閱讀

    led驅(qū)動(dòng)電源怎么測(cè)量好壞

    LED驅(qū)動(dòng)電源是LED燈具中非常重要的組成部分,它負(fù)責(zé)將輸入的交流電或直流電轉(zhuǎn)換為LED所需的恒定電流或恒定電壓。個(gè)良好的
    的頭像 發(fā)表于 10-14 17:27 ?3072次閱讀

    功率led用pwm驅(qū)動(dòng)和恒流驅(qū)動(dòng)樣嗎?

    功率LED使用PWM(脈沖寬度調(diào)制)驅(qū)動(dòng)和恒流驅(qū)動(dòng)在本質(zhì)上是不同的兩種驅(qū)動(dòng)方式,它們各自具有不同的工作原理、特點(diǎn)和適用場(chǎng)景。
    的頭像 發(fā)表于 10-01 14:53 ?2050次閱讀

    LED驅(qū)動(dòng)器應(yīng)用的些指南和技巧

    電子發(fā)燒友網(wǎng)站提供《LED驅(qū)動(dòng)器應(yīng)用的些指南和技巧.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:35 ?0次下載
    <b class='flag-5'>LED</b><b class='flag-5'>驅(qū)動(dòng)</b>器應(yīng)用的<b class='flag-5'>一</b>些指南和技巧

    LED驅(qū)動(dòng)芯片的引腳功能主要包括哪幾種?

    LED驅(qū)動(dòng)芯片是種用于控制和驅(qū)動(dòng)LED燈的集成電路。它通過將電源電壓轉(zhuǎn)換為適合LED工作的電流
    的頭像 發(fā)表于 08-12 10:19 ?3791次閱讀

    有源蜂鳴器驅(qū)動(dòng)電路制作方法

    有源蜂鳴器驅(qū)動(dòng)電路的制作方法主要包括準(zhǔn)備工具與材料、焊接電路元件以及測(cè)試電路等步驟。以下是個(gè)制作方法: 、準(zhǔn)備工具與材料 工具 :壓線鉗、熱風(fēng)槍焊臺(tái)(或普通電烙鐵)、萬用表(用于測(cè)
    的頭像 發(fā)表于 08-09 10:58 ?1874次閱讀

    multisim蜂鳴器驅(qū)動(dòng)程序詳解

    以下是關(guān)于Multisim蜂鳴器驅(qū)動(dòng)程序的詳解: 蜂鳴器簡(jiǎn)介 蜂鳴器種電子設(shè)備,用于發(fā)出聲音信號(hào)。它廣泛應(yīng)用于各種電子設(shè)備中,如電話、鬧
    的頭像 發(fā)表于 08-09 10:18 ?2049次閱讀