Tiny4412裸機(jī)按鍵控制LED燈

試過了GPIO的輸出功能够坐,再來測試下GPIO的輸入功能托嚣。開發(fā)板上有四個(gè)用戶按鍵损趋,使用這四個(gè)按鍵來控制四個(gè)LED的狀態(tài)患久,發(fā)現(xiàn)使用位操作真的是非常方便。

  • 開發(fā)板:Tiny4412SDK標(biāo)準(zhǔn)版 「Tiny4412 SDK 1506」
  • 工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」
  • 平臺:Ubuntu 14.04

1. 在原理圖上找到按鍵對應(yīng)的GPIO

在上一篇中浑槽,通過原理圖已經(jīng)知道了用戶LED1-4蒋失,對應(yīng)了GPM4_0-GPM4_3,再來看下KEY1-4對應(yīng)的管腳。

用戶按鍵
GPX3

用戶按鍵KEY1括荡、KEY2高镐、KEY3、KEY4分別對應(yīng)了GPX3_2畸冲、GPX3_3嫉髓、GPX3_4观腊、GPX3_5,并且按鍵引腳平常是高電平算行,按鍵被按下變?yōu)榈碗娖健?/p>

2. 芯片手冊查找GPIO相關(guān)寄存器

控制寄存器GPX3CON:

GPX3CON

數(shù)據(jù)寄存器GPX3DAT:

GPX3DAT

配置GPX3所對應(yīng)的位為0梧油,即為輸入模式。

3. 編寫程序

#define GPIOBASE    0x11000000
#define GPM4CON     (*(volatile unsigned long *)(GPIOBASE + 0x02E0))
#define GPM4DAT     (*(volatile unsigned long *)(GPIOBASE + 0x02E4))
#define GPX3CON     (*(volatile unsigned long *)(GPIOBASE + 0x0C60))
#define GPX3DAT     (*(volatile unsigned long *)(GPIOBASE + 0x0C64))

int key(void)
{
    unsigned long value;

    /*設(shè)置LED1-4對應(yīng)GPIO為輸出模式*/
    GPM4CON &= ~((0xF<<0) | (0xF<<4) | (0xF<<8) | (0xF<<12));
    GPM4CON |= ((1<<0) | (1<<4) | (1<<8) | (1<<12));

    /*設(shè)置KEY1-4對應(yīng)GPIO為輸入模式*/
    GPX3CON &= ~((0xF<<8) | (0xF<<12) | (0xF<<16) | (0xF<<20));

    while(1)
    {
        value = GPX3DAT; //讀取GPX3電平狀態(tài)

        if(value & (1<<2)) //Key1 --> GPX3_2
        {
            GPM4DAT |= (1<<0); //LED1 --> GPM4_0
        }else{
            GPM4DAT &= ~(1<<0);
        }

        if(value & (1<<3)) //Key2 --> GPX3_3
        {
            GPM4DAT |= (1<<1);  //LED2 --> GPM4_1
        }else{
            GPM4DAT &= ~(1<<1);
        }

        if(value & (1<<4)) //Key3 --> GPX3_4
        {
            GPM4DAT |= (1<<2);  //LED3 --> GPM4_2
        }else{
            GPM4DAT &= ~(1<<2);
        }

        if(value & (1<<5)) //Key4 --> GPX3_5
        {
            GPM4DAT |= (1<<3); //LED4 --> GPM4_3
        }else{
            GPM4DAT &= ~(1<<3);
        }
    }
    return 0;
}

Makefile代碼如下:

default:
    arm-linux-gcc -c key.c  -o key.o
    arm-linux-ld  -Ttext=0x70003000  key.o  -o key
    arm-linux-objcopy  -O binary   key  key.bin
clean:
    rm -f key.o  key  key.bin   *~

執(zhí)行make clean州邢,然后make儡陨,生成key.bin二進(jìn)制文件。

生成二進(jìn)制文件

4. 上傳程序到開發(fā)板

  1. 在串口中執(zhí)行:
dnw 70003000

等待dnw下載量淌。

等待下載
  1. 在ubuntu下文件目錄下執(zhí)行:
dnw key.bin
上傳
完成
  1. 文件通過dnw下載到開發(fā)板內(nèi)存地址0x70003000骗村,執(zhí)行:
go 70003000

程序運(yùn)行。

運(yùn)行

5. 按鍵控制LED狀態(tài)

LED
KEY
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末呀枢,一起剝皮案震驚了整個(gè)濱河市胚股,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌裙秋,老刑警劉巖琅拌,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異摘刑,居然都是意外死亡进宝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門枷恕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來党晋,“玉大人,你說我怎么就攤上這事活尊×バ#” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵蛹锰,是天一觀的道長深胳。 經(jīng)常有香客問我,道長铜犬,這世上最難降的妖魔是什么舞终? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮癣猾,結(jié)果婚禮上敛劝,老公的妹妹穿的比我還像新娘。我一直安慰自己纷宇,他們只是感情好夸盟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著像捶,像睡著了一般上陕。 火紅的嫁衣襯著肌膚如雪桩砰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天释簿,我揣著相機(jī)與錄音亚隅,去河邊找鬼。 笑死庶溶,一個(gè)胖子當(dāng)著我的面吹牛煮纵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播偏螺,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼行疏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了套像?” 一聲冷哼從身側(cè)響起隘擎,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凉夯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體采幌,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡劲够,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了休傍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片征绎。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖磨取,靈堂內(nèi)的尸體忽然破棺而出人柿,到底是詐尸還是另有隱情,我是刑警寧澤忙厌,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布凫岖,位于F島的核電站,受9級特大地震影響逢净,放射性物質(zhì)發(fā)生泄漏哥放。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一爹土、第九天 我趴在偏房一處隱蔽的房頂上張望甥雕。 院中可真熱鬧,春花似錦胀茵、人聲如沸社露。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峭弟。三九已至附鸽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間孟害,已是汗流浹背拒炎。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挨务,地道東北人击你。 一個(gè)月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像谎柄,于是被迫代替她去往敵國和親丁侄。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355