国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

鴻蒙Hi3861 ADC驅動 如何使用開發板上的3個按鍵

系統
本節主要介紹Hi3861 的 ADC功能,順便實現ADC按鍵檢測。這里先看效果吧。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

 本節主要介紹Hi3861 的 ADC功能,順便實現ADC按鍵檢測。這里先看效果吧。

查看開發板,可以看到除了復位按鍵之外,還有3個按鍵。而查看原理,我們可以看到這個3個按鍵其實都是接的GPIO5 引腳,而GPIO5引腳又可復用為ADC2引腳。


故而,我們可以猜測出來我們可以使用ADC檢測電壓,判斷出來是哪個引腳被按下了。

看下效果:

當我按下 按鍵1的時候,串口會打印:

當我按下按鍵2的時候串口會打印:

當我按下 USER按鍵的時候串口會打印


其中 vlt_min 表示讀取到ADC值的最小值,

vlt_max 表示讀取到ADC值的最大值。

由此我們可以看到,按鍵1被按下的時候,ADC值得范圍在 0.563 ~ 0.577

按鍵2按下后,ADC值在 0.963 ~ 0.970

USER按鍵按下后 ADC值 在 0.197 ~ 0.204

如果沒有按鍵按下,則ADC值在 3.227 ~ 3.241

vlt_min:3.227, vlt_max:3.241

代碼實現其實很簡單。

(1)引腳初始化

這里由于GPIO5默認被復用為串口引腳,這里我們重新修改為普通GPIO引腳。初始化代碼如下:

  1. (hi_void)hi_gpio_init(); 
  2.  
  3. hi_io_set_func(HI_IO_NAME_GPIO_5, HI_IO_FUNC_GPIO_5_GPIO); /* uart1 rx */ 
  4.  
  5. ret = hi_gpio_set_dir(HI_GPIO_IDX_5, HI_GPIO_DIR_IN); 
  6.  
  7. if (ret != HI_ERR_SUCCESS) { 
  8.  
  9. printf("===== ERROR ======gpio -> hi_gpio_set_dir1 ret:%d\r\n", ret); 
  10.  
  11. return
  12.  

 (2)讀取ADC值

讀取ADC值的代碼頁相對簡單,這里,我是重復讀取64次,減少誤判。

  1. memset_s(g_adc_buf, sizeof(g_adc_buf), 0x0, sizeof(g_adc_buf)); 
  2.  
  3. for (i = 0; i < ADC_TEST_LENGTH; i++) { 
  4.  
  5. ret = hi_adc_read((hi_adc_channel_index)HI_ADC_CHANNEL_2, &data, HI_ADC_EQU_MODEL_1, HI_ADC_CUR_BAIS_DEFAULT, 0); 
  6.  
  7. if (ret != HI_ERR_SUCCESS) { 
  8.  
  9. printf("ADC Read Fail\n"); 
  10.  
  11. return
  12.  
  13.  
  14. g_adc_buf[i] = data; 
  15.  

 (3)對讀出來的ADC值進行判斷處理

S1對應的是按鍵1 、 S2對應的是按鍵2 、 S3對應的是 USER按鍵

  1. for (i = 0; i < data_len; i++) { 
  2.  
  3. vlt = g_adc_buf[i]; 
  4.  
  5. float voltage = (float)vlt * 1.8 * 4 / 4096.0; /* vlt * 1.8 * 4 / 4096.0: Convert code into voltage */ 
  6.  
  7. vlt_max = (voltage > vlt_max) ? voltage : vlt_max; 
  8.  
  9. vlt_min = (voltage < vlt_min) ? voltage : vlt_min; 
  10.  
  11.  
  12. //printf("vlt_min:%.3f, vlt_max:%.3f \n", vlt_min, vlt_max); 
  13.  
  14. vlt_val = (vlt_min + vlt_max)/2.0; 
  15.  
  16. if((vlt_val > 0.4) && (vlt_val < 0.6)) 
  17.  
  18.  
  19. if(key_flg == 0) 
  20.  
  21.  
  22. key_flg = 1; 
  23.  
  24. key_status = KEY_EVENT_S1; 
  25.  
  26.  
  27.  
  28. if((vlt_val > 0.8) && (vlt_val < 1.1)) 
  29.  
  30.  
  31. if(key_flg == 0) 
  32.  
  33.  
  34. key_flg = 1; 
  35.  
  36. key_status = KEY_EVENT_S2; 
  37.  
  38.  
  39.  
  40. if((vlt_val > 0.01) && (vlt_val < 0.3)) 
  41.  
  42.  
  43. if(key_flg == 0) 
  44.  
  45.  
  46. key_flg = 1; 
  47.  
  48. key_status = KEY_EVENT_S3; 
  49.  
  50.  
  51.  
  52. if(vlt_val > 3.0) 
  53.  
  54.  
  55. key_flg = 0; 
  56.  
  57. key_status = KEY_EVENT_NONE; 
  58.  

 (4)使用

編寫好上面代碼后,就可以直接在while循環中判斷按鍵值了:

  1. while(1) 
  2.  
  3.  
  4. //讀取ADC值 
  5.  
  6. app_demo_adc_test(); 
  7.  
  8. switch(get_key_event()) 
  9.  
  10.  
  11. case KEY_EVENT_NONE: 
  12.  
  13.  
  14.  
  15. break; 
  16.  
  17. case KEY_EVENT_S1: 
  18.  
  19.  
  20. printf("KEY_EVENT_S1 \r\n"); 
  21.  
  22.  
  23. break; 
  24.  
  25. case KEY_EVENT_S2: 
  26.  
  27.  
  28. printf("KEY_EVENT_S2 \r\n"); 
  29.  
  30.  
  31. break; 
  32.  
  33. case KEY_EVENT_S3: 
  34.  
  35.  
  36. printf("KEY_EVENT_S3 \r\n"); 
  37.  
  38.  
  39. break; 
  40.  
  41.  
  42. usleep(30000); 
  43.  

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz 

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2020-11-18 11:56:06

鴻蒙Hi3861

2020-10-27 10:08:19

Hi3861ADC驅動

2020-10-30 17:12:05

Hi3861

2020-11-06 10:15:16

HiBurn

2020-10-14 09:37:03

HiBurn鴻蒙.bin文件

2020-10-30 09:48:03

Hi3861開發板get請求

2020-11-06 11:32:11

NV操作

2020-10-30 17:42:36

鴻蒙 OS Hi386

2020-12-09 09:44:29

Hi3861硬件介紹鴻蒙開發板

2020-12-17 10:02:16

鴻蒙Hi3861開發板

2021-06-25 15:32:13

鴻蒙HarmonyOS應用

2021-09-16 10:03:39

鴻蒙HarmonyOS應用

2020-12-15 11:57:49

Hi3861 HarmonyOS開發板

2020-10-29 09:53:06

Hi3861硬件開發板

2020-12-11 12:45:04

鴻蒙Hi3861游戲

2022-08-19 10:54:47

操作系統鴻蒙

2020-11-03 12:26:55

Hi3861

2021-12-20 21:01:52

鴻蒙HarmonyOS應用

2022-01-05 20:27:45

鴻蒙HarmonyOS應用

2021-05-14 15:51:01

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

欧美精品麻豆| 美女网站在线观看| 久草这里只有精品视频| 亚洲日韩欧美视频一区| 亚洲综合欧美激情| 久久久久久亚洲精品杨幂换脸| 欧美精品日韩www.p站| 成人av电影观看| 神马国产精品影院av| 男人在线视频资源| 极品在线视频| 久草亚洲一区| 亚洲国产午夜| 精品亚洲精品福利线在观看| 国产网站免费观看| 久久久久9999亚洲精品| 欧美丰满少妇xxxxx高潮对白| 久久在线中文字幕| 欧美91视频| 在线毛片网站| 国产性色一区二区| 亚洲第一中文av| 宅男噜噜噜66国产日韩在线观看| 色综合天天综合网国产成人网 | 伊甸园精品99久久久久久| 国产99亚洲| 国产一区二区三区中文| 三上悠亚在线观看| 波多野洁衣一区| 精品国产免费一区二区三区| 日本不卡二三区| 久久成人精品一区二区三区| 182tv在线播放| 婷婷丁香激情综合| 超碰97在线免费| 日本一区免费视频| 日韩视频免费播放| 国产在线国偷精品产拍免费yy | 三上悠亚激情av一区二区三区| 色婷婷狠狠综合| 成年人视频在线| 最新国产の精品合集bt伙计| 日韩国产欧美亚洲| 国产免费黄色一级片| www.日韩精品| 国产人成在线观看| 日韩美女精品在线| 黄色一级一级片| 国产在线精品一区二区| 在线观看国产一区| 日韩av影视综合网| 乡村艳史在线观看| 免费久久精品视频| 日本在线一区| 国产精品日本| 成人a'v在线播放| 99久久精品免费看国产一区二区三区| 日本黄色三级大片| 久久亚洲二区| 久久综合福利| 亚欧成人精品| 欧美精品一区二区三区四区五区| 99久久99热这里只有精品| 欧美在线激情网| 亚洲精品国产动漫| 亚洲 日韩 国产第一| 久草精品视频| 欧美一级淫片videoshd| 西瓜成人精品人成网站| 97久久精品在线| 亚洲永久精品唐人导航网址| 国产精品一区二区三区久久久| 久久成人av| 91精品视频大全| 日韩天天综合| 免费国产在线精品一区二区三区| 午夜在线视频一区二区区别| 欧美精品久久久| 韩国精品免费视频| 大西瓜av在线| 成人欧美一区二区三区黑人麻豆 | 亚洲视频每日更新| 在线观看污网站| 欧美性受xxxx黑人xyx性爽| 国产二区三区在线| 久久久国产精品视频| 国产一区丝袜| 国产欧美精品一区二区三区介绍| 9191国语精品高清在线| 日本一区二区精品视频| 国产成人超碰人人澡人人澡| 99热播在线观看| 欧美日韩一卡二卡三卡 | 中文字幕国产在线| 日韩电影中文 亚洲精品乱码| 国产精品白丝av嫩草影院| 国产高清精品一区| 久久亚洲影视婷婷| 在线日本视频| 午夜免费在线观看精品视频| 久久国产主播| 性视频在线播放| 中文字幕一区二区三区电影| 最新国产精品| 亚洲xxxx2d动漫1| 亚洲国产欧美日韩精品| 91一区二区三区四区| 成人免费毛片在线观看| 欧美日韩日日骚| 女人抽搐喷水高潮国产精品| 蜜桃视频成人| 一区二区三区四区不卡视频| 不卡av影片| 久久av二区| 亚洲国产日韩a在线播放性色| 国产精品天堂蜜av在线播放| 国产精品伊人日日| 综合久久综合久久| 中文字幕日本一区二区| 欧美精品v日韩精品v国产精品| 亚洲一区二区三区不卡国产欧美 | 成人va天堂| 国产一区二区无遮挡| 1000精品久久久久久久久| 羞羞的网站在线观看| 国产美女精品视频| 国产嫩草影院久久久久| 亚洲淫成人影院| 欧美午夜精品理论片a级大开眼界| 亚洲最色的网站| 国产成人澳门| 91精品91久久久中77777老牛| 欧美精品一区二区三区高清aⅴ| 中文无码久久精品| 免费观看v片在线观看| 欧美精品一区二区免费| 国产成人精品在线看| 精精国产xxx在线视频app| 国产高清不卡av| 日本黄色一区二区| 久久久久av| 天堂a中文在线| 国产欧美中文字幕| 亚洲电影中文字幕在线观看| 亚洲妇女av| 国产黄色影视| 热re99久久精品国产66热| 中文字幕一区二区三区色视频| 亚洲va欧美va人人爽成人影院| 69sex久久精品国产麻豆| 亚洲精品98久久久久久中文字幕| 色综合色综合网色综合| 在线观看视频一区| 91一区二区三区在线观看| 免费a级人成a大片在线观看| www.日韩系列| youjizz国产精品| a屁视频一区二区三区四区| 777久久精品一区二区三区无码| 日韩精品在线私人| 国产福利精品一区| 色8久久久久| 菠萝蜜影院一区二区免费| 欧美蜜桃一区二区三区| 97netav| 岛国视频午夜一区免费在线观看| 精品国内自产拍在线观看视频| 无限国产资源| 最新成人av在线| 99国产精品视频免费观看| 亚洲黄色www| 韩国女主播成人在线| 日本乱理伦在线| 亚洲自拍三区| 日韩中文字幕视频在线| 久久久高清一区二区三区| 精品亚洲自拍| 成人综合在线视频| 日本天码aⅴ片在线电影网站| 日韩欧美亚洲精品| 中文字幕精品在线视频| 久久精品无码一区二区三区| 台湾亚洲精品一区二区tv| 手机亚洲第一页| 视频一区二区三区免费观看| 中文在线不卡视频| 一区二区三区中文字幕电影 | 美女视频一区免费观看| 丁香花在线观看完整版电影| 女女百合国产免费网站| 美女久久久久久久久久久| **网站欧美大片在线观看| 91精品精品| 老司机在线永久免费观看| 蜜臀av.com| 欧洲一区二区视频| 91精品国产一区二区三区| k8久久久一区二区三区| 国产欧美久久一区二区三区| 亚洲麻豆精品|