編輯語(yǔ):
芯片開放社區(qū)(OCC)面向廣大開發(fā)者推出應(yīng)用實(shí)戰(zhàn)系列內(nèi)容,通過分享開發(fā)者實(shí)戰(zhàn)開發(fā)案例,總結(jié)應(yīng)用開發(fā)經(jīng)驗(yàn),梳理開發(fā)中的常見問題及解決方案,為后續(xù)參與的開發(fā)者提供更多參考與借鑒。
本文是關(guān)于開發(fā)者 kit7828基于BL606P-DVK開發(fā)板實(shí)戰(zhàn)開發(fā)的系列文章中的第三篇,主要介紹了ADC Key按鈕例程,后面還會(huì)持續(xù)更新該開發(fā)者的測(cè)評(píng)內(nèi)容,敬請(qǐng)期待!
BL606P的ADC按鍵都接在IO管腳上的GPIO16,需要設(shè)置跳線帽。根據(jù)分壓電阻網(wǎng)絡(luò)獲取不同的電壓值,通過AD轉(zhuǎn)換值區(qū)分按下了哪個(gè)按鍵。
01硬件及連接
根據(jù)官方提供的資料,可以看到如下的原理圖
ADC的管腳使用的是GPIO16,需要設(shè)置跳線帽。
KEY_IN通過FPC連接線連接至KEY
而key連接至按鍵電阻分壓網(wǎng)絡(luò)
通過不同大的分壓,確定哪個(gè)按鍵按下
02軟件實(shí)現(xiàn)
平頭哥官網(wǎng)給出的ADC例程
具體實(shí)現(xiàn)代碼
CDK中具體代碼為:
2.1 設(shè)置管腳
void adcpin_init(void) { csi_pin_set_mux(GPIO_PIN_16, GPIO16_ADC_CH8); }
2.2 ADC初始化
void adckey_Init() { adc.port = 8; adc.config.sampling_cycle = 100; hal_adc_init(&adc); }
2.3 按鍵檢測(cè)代碼
#define KEY_NOTHING19 uint16_t GetKey() { //持續(xù)檢測(cè)按鍵次數(shù) #define CHECKNUM 10 uint32_t value; uint16_t kval=0; uint16_t oldkey=KEY_NOTHING,i=0; hal_adc_value_get(&adc, &value, HAL_WAIT_FOREVER); kval = (value & 0xffff)>> 9; if(kvalCHECKNUM)i=CHECKNUM; } } else oldkey=KEY_NOTHING; return KEY_NOTHING; } ){>
2.4 按鍵判定代碼
keyval = GetKey(); if( keyval < 19) printf("Key Pressed: %d ", keyval); aos_msleep(5); switch (keyval) { case 0: printf("K4 Pressed. "); break; case 3: printf("K3 Pressed. "); break; case 8: printf("K6 Pressed. "); break; case 11: case 12: printf("K5 Pressed. "); break; case 17: printf("K7 Pressed. "); break; }
03運(yùn)行后效果
按鍵檢測(cè)過程中,由于運(yùn)用ADC檢測(cè)電壓,會(huì)出現(xiàn)浮動(dòng)情況,比較好的解決辦法是多讀數(shù)幾次,取平均值。
審核編輯:湯梓紅
-
adc
+關(guān)注
關(guān)注
99文章
6534瀏覽量
545833 -
音視頻
+關(guān)注
關(guān)注
4文章
486瀏覽量
29992 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5125瀏覽量
98292 -
key
+關(guān)注
關(guān)注
0文章
51瀏覽量
12864 -
按鍵檢測(cè)
+關(guān)注
關(guān)注
0文章
24瀏覽量
4856
原文標(biāo)題:應(yīng)用速遞 | 博流BL606P音視頻開發(fā)板:三、ADC Key按鈕例程
文章出處:【微信號(hào):芯片開放社區(qū),微信公眾號(hào):芯片開放社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于博流BL606P音視頻開發(fā)板的開發(fā)環(huán)境搭建及例程測(cè)試
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>的<b class='flag-5'>開發(fā)</b>環(huán)境搭建及<b class='flag-5'>例程</b>測(cè)試](https://file1.elecfans.com/web2/M00/89/62/wKgaomSCiSaAcZvnAAAWjSY3U4k395.png)
博流BL606P音視頻開發(fā)板:(三)ADC測(cè)試
基于博流BL606P音視頻開發(fā)板的智能音箱測(cè)試
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>的智能音箱測(cè)試](https://file1.elecfans.com/web2/M00/82/96/wKgZomRZvTiAcyhoAACZYkh_sKQ158.png)
博流BL606P音視頻開發(fā)板:HelloWord Demo運(yùn)行及跳線帽設(shè)置
![<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>:HelloWord Demo運(yùn)行及跳線帽設(shè)置](https://file1.elecfans.com/web2/M00/82/C5/wKgaomRh3ryAey4wAABwn5Lk8FM056.png)
基于博流BL606P音視頻開發(fā)板實(shí)現(xiàn)RGB點(diǎn)燈
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>實(shí)現(xiàn)RGB點(diǎn)燈](https://file1.elecfans.com/web2/M00/82/E1/wKgaomRllICAC0CpAAAkBntALDs592.png)
博流BL606P音視頻開發(fā)板CKLink無法下載的解決辦法
![<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>CKLink無法下載的解決辦法](https://file1.elecfans.com/web2/M00/88/CB/wKgZomR0FZWAD2pKAAAm_jFYx2o759.png)
基于博流BL606P音視頻開發(fā)板的智能音箱系統(tǒng)開發(fā)方案
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>的智能音箱系統(tǒng)<b class='flag-5'>開發(fā)</b>方案](https://file1.elecfans.com/web2/M00/89/43/wKgZomR--RiAO1F-AAAbPudPkeQ884.jpg)
基于博流BL606P音視頻開發(fā)板GPIO驅(qū)動(dòng)RGB燈
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>GPIO驅(qū)動(dòng)RGB燈](https://file1.elecfans.com/web2/M00/89/7A/wKgaomSGefiAUUVPAAAY-EL89KA049.png)
基于博流BL606P音視頻開發(fā)板的藍(lán)牙音頻測(cè)試
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>的藍(lán)牙音頻測(cè)試](https://file1.elecfans.com/web2/M00/8A/8D/wKgaomSXm76AAGHXAAAnCVBNvFY589.png)
基于博流BL606P音視頻開發(fā)板驅(qū)動(dòng)LED數(shù)碼管
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>驅(qū)動(dòng)LED數(shù)碼管](https://file1.elecfans.com/web2/M00/8B/A7/wKgZomSc42uAGt-CAAAvmUFGPaU160.png)
基于博流BL606P音視頻開發(fā)板的CAN擴(kuò)展模塊收發(fā)測(cè)試
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>的CAN擴(kuò)展模塊收發(fā)測(cè)試](https://file1.elecfans.com/web2/M00/8B/E2/wKgZomSiLV2AWddBAAAscNa4qLM977.png)
博流BL606P音視頻開發(fā)板:驅(qū)動(dòng)MAX7219點(diǎn)陣模組
![<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>:驅(qū)動(dòng)MAX7219點(diǎn)陣模組](https://file1.elecfans.com/web2/M00/8C/5A/wKgZomSrcLiAAup1AAC7W-YW_0c738.png)
基于博流BL606P音視頻開發(fā)板的GPIO點(diǎn)燈教程
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>的GPIO點(diǎn)燈教程](https://file1.elecfans.com/web2/M00/8C/E2/wKgaomS0rfmAGTaPAAArMcwEjOU855.png)
基于博流BL606P音視頻開發(fā)板驅(qū)動(dòng)LED數(shù)碼管
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>驅(qū)動(dòng)LED數(shù)碼管](https://file1.elecfans.com/web2/M00/8D/44/wKgZomS4oxuAJV83AAA9OsvQLa0757.png)
基于博流BL606P音視頻開發(fā)板的音響測(cè)試
![基于<b class='flag-5'>博</b><b class='flag-5'>流</b><b class='flag-5'>BL606P</b><b class='flag-5'>音視頻</b><b class='flag-5'>開發(fā)板</b>的音響測(cè)試](https://file1.elecfans.com/web2/M00/8D/B2/wKgaomS_LEmAMSLKAACFWCGK5f8979.png)
評(píng)論