編輯語:
芯片開放社區(qū)(OCC)面向廣大開發(fā)者推出應用實戰(zhàn)系列內(nèi)容,通過分享開發(fā)者實戰(zhàn)開發(fā)案例,總結應用開發(fā)經(jīng)驗,梳理開發(fā)中的常見問題及解決方案,為后續(xù)參與的開發(fā)者提供更多參考與借鑒。
本文是關于開發(fā)者 kit7828基于BL606P-DVK開發(fā)板實戰(zhàn)開發(fā)的系列文章中的第三篇,主要介紹了ADC Key按鈕例程,后面還會持續(xù)更新該開發(fā)者的測評內(nèi)容,敬請期待!
BL606P的ADC按鍵都接在IO管腳上的GPIO16,需要設置跳線帽。根據(jù)分壓電阻網(wǎng)絡獲取不同的電壓值,通過AD轉換值區(qū)分按下了哪個按鍵。
01硬件及連接
根據(jù)官方提供的資料,可以看到如下的原理圖

ADC的管腳使用的是GPIO16,需要設置跳線帽。
KEY_IN通過FPC連接線連接至KEY

而key連接至按鍵電阻分壓網(wǎng)絡

通過不同大的分壓,確定哪個按鍵按下
02軟件實現(xiàn)
平頭哥官網(wǎng)給出的ADC例程

具體實現(xiàn)代碼

CDK中具體代碼為:
2.1 設置管腳
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 按鍵檢測代碼
#define KEY_NOTHING19
uint16_t GetKey()
{
//持續(xù)檢測按鍵次數(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運行后效果

按鍵檢測過程中,由于運用ADC檢測電壓,會出現(xiàn)浮動情況,比較好的解決辦法是多讀數(shù)幾次,取平均值。
審核編輯:湯梓紅
-
adc
+關注
關注
100文章
6940瀏覽量
552922 -
音視頻
+關注
關注
4文章
565瀏覽量
31103 -
開發(fā)板
+關注
關注
25文章
6045瀏覽量
111145 -
key
+關注
關注
0文章
53瀏覽量
13226 -
按鍵檢測
+關注
關注
0文章
25瀏覽量
4987
原文標題:應用速遞 | 博流BL606P音視頻開發(fā)板:三、ADC Key按鈕例程
文章出處:【微信號:芯片開放社區(qū),微信公眾號:芯片開放社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
基于博流BL606P音視頻開發(fā)板的開發(fā)環(huán)境搭建及例程測試
博流BL606P音視頻開發(fā)板:(三)ADC測試
基于博流BL606P音視頻開發(fā)板的智能音箱測試
博流BL606P音視頻開發(fā)板:HelloWord Demo運行及跳線帽設置
基于博流BL606P音視頻開發(fā)板實現(xiàn)RGB點燈
博流BL606P音視頻開發(fā)板CKLink無法下載的解決辦法
基于博流BL606P音視頻開發(fā)板的智能音箱系統(tǒng)開發(fā)方案
基于博流BL606P音視頻開發(fā)板的藍牙音頻測試
基于博流BL606P音視頻開發(fā)板驅動LED數(shù)碼管
基于博流BL606P音視頻開發(fā)板的CAN擴展模塊收發(fā)測試
博流BL606P音視頻開發(fā)板:驅動MAX7219點陣模組
基于博流BL606P音視頻開發(fā)板的GPIO點燈教程
基于博流BL606P音視頻開發(fā)板驅動LED數(shù)碼管
基于博流BL606P音視頻開發(fā)板的音響測試

基于博流BL606P音視頻開發(fā)板的ADC Key按鈕例程
評論