色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】7.RGB操作

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-03 15:34 ? 次閱讀
本文來源電子發(fā)燒友社區(qū),作者:hehung, 帖子地址:https://bbs.elecfans.com/jishu_2021276_1_1.html


`嘗試了開發(fā)板的RGB功能。
RGB其實(shí)就是三個(gè)端口進(jìn)行控制的,分別為10,11,和12.原理圖如下:
224259d4xjee12e74pbcre.png

我使用按鍵按下分別控制三個(gè)LED亮滅,程序?qū)崿F(xiàn)上比較簡單,如果擴(kuò)展功能的話可以通過PWM控制這三個(gè)引腳實(shí)現(xiàn)亮度調(diào)節(jié)。

代碼如下:
  1. /*this is my first application*/
  2. /*2020/11/08*/
  3. #include
  4. #include "ohos_init.h"
  5. #include "ohos_types.h"
  6. #include
  7. #include
  8. #include "ohos_init.h"
  9. #include "cmsis_os2.h"
  10. #include "wifiiot_gpio.h"
  11. #include "wifiiot_gpio_ex.h"
  12. #include "wifiiot_adc.h"
  13. #include
  14. #include
  15. #include
  16. #include
  17. #include
  18. #define LED_INTERVAL_TIME_US 500000 /*500ms*/
  19. #define LED_TASK_STACK_SIZE 512
  20. #define LED_TASK_PRIO 25
  21. #define KEY_INTERVAL_TIME_US 10000 /*10ms*/
  22. #define KEY_TASK_STACK_SIZE 1024
  23. #define KEY_TASK_PRIO 24
  24. #define RGB_INTERVAL_TIME_US 10000 /*10ms*/
  25. #define RGB_TASK_STACK_SIZE 1024
  26. #define RGB_TASK_PRIO 23
  27. static void *LedTask(const char *arg);
  28. static void *KeyTask(const char *arg);
  29. static void *RGBTask(const char *arg);
  30. /*LED Control*/
  31. enum LedState {
  32. LED_ON = 0,
  33. LED_OFF,
  34. LED_SPARK,
  35. };
  36. uint8_t RGB_ctrl = 0;
  37. static void *LedTask(const char *arg)
  38. {
  39. (void)arg;
  40. enum LedState g_ledState = LED_SPARK;
  41. g_ledState = LED_SPARK;
  42. while (1) {
  43. switch (g_ledState) {
  44. case LED_ON:
  45. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);
  46. usleep(LED_INTERVAL_TIME_US);
  47. break;
  48. case LED_OFF:
  49. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);
  50. usleep(LED_INTERVAL_TIME_US);
  51. break;
  52. case LED_SPARK:
  53. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);
  54. usleep(LED_INTERVAL_TIME_US);
  55. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);
  56. usleep(LED_INTERVAL_TIME_US);
  57. break;
  58. default:
  59. usleep(LED_INTERVAL_TIME_US);
  60. break;
  61. }
  62. }
  63. return NULL;
  64. }
  65. static void Led0Entry(void)
  66. {
  67. osThreadAttr_t attr;
  68. GpioInit();
  69. IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);
  70. GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);
  71. attr.name = "LedTask";
  72. attr.attr_bits = 0U;
  73. attr.cb_mem = NULL;
  74. attr.cb_size = 0U;
  75. attr.stack_mem = NULL;
  76. attr.stack_size = LED_TASK_STACK_SIZE;
  77. attr.priority = LED_TASK_PRIO;
  78. if (osThreadNew((osThreadFunc_t)LedTask, NULL, &attr) == NULL) {
  79. printf("[Led0Task] Falied to create LedTask!
  80. ");
  81. }
  82. }
  83. SYS_RUN(Led0Entry);
  84. /*OLED board KEY Control - vased on ADC input*/
  85. static void *KeyTask(const char *arg)
  86. {
  87. (void)arg;
  88. WifiIotGpioValue Key_Status = WIFI_IOT_GPIO_VALUE1;
  89. WifiIotGpioValue Last_key_Status = WIFI_IOT_GPIO_VALUE1;
  90. // hi_u16 Key_adc_value = 0u;
  91. // hi_u32 ret = 0;
  92. while (1) {
  93. GpioGetInputVal(WIFI_IOT_IO_NAME_GPIO_5, &Key_Status);
  94. // printf("%d
  95. ", Key_Status);
  96. if((Key_Status == WIFI_IOT_GPIO_VALUE0) && (Last_key_Status != Key_Status))
  97. {
  98. RGB_ctrl ++;
  99. printf("Key pressed, RGB_ctrl = %d
  100. ", RGB_ctrl);
  101. }
  102. else
  103. {
  104. }
  105. // ret = hi_adc_read((hi_adc_channel_index)HI_ADC_CHANNEL_2, &Key_adc_value,
  106. // HI_ADC_EQU_MODEL_1, HI_ADC_CUR_BAIS_DEFAULT, 0);
  107. // if (ret != HI_ERR_SUCCESS) {
  108. // printf("ADC Read Fail
  109. ");
  110. // }
  111. // else
  112. // {
  113. // // printf("ADC value = %d", Key_adc_value);
  114. // }
  115. // /*User 按鍵ADC值讀出來大概為116*/
  116. // /*S1 按鍵ADC讀出來大概為320*/
  117. // /*S2 按鍵ADC讀出來大概為548*/
  118. // if(Key_adc_value <= 200)
  119. // {
  120. // printf("User key pressed
  121. ");
  122. // }
  123. // else if(Key_adc_value <= 400)
  124. // {
  125. // printf("User S1 pressed
  126. ");
  127. // }
  128. // else if(Key_adc_value <= 600)
  129. // {
  130. // printf("User S2 pressed
  131. ");
  132. // }
  133. // else
  134. // {
  135. // }
  136. Last_key_Status = Key_Status;
  137. usleep(KEY_INTERVAL_TIME_US);
  138. }
  139. return NULL;
  140. }
  141. static void KeyEntry(void)
  142. {
  143. osThreadAttr_t attr;
  144. GpioInit();
  145. IoSetFunc(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_FUNC_GPIO_5_GPIO);
  146. GpioSetDir(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_GPIO_DIR_IN);
  147. // AdcRead();
  148. attr.name = "KeyTask";
  149. attr.attr_bits = 0U;
  150. attr.cb_mem = NULL;
  151. attr.cb_size = 0U;
  152. attr.stack_mem = NULL;
  153. attr.stack_size = KEY_TASK_STACK_SIZE;
  154. attr.priority = KEY_TASK_PRIO;
  155. if (osThreadNew((osThreadFunc_t)KeyTask, NULL, &attr) == NULL) {
  156. printf("[KeyTask] Falied to create KeyTask!
  157. ");
  158. }
  159. }
  160. SYS_RUN(KeyEntry);
  161. static void *RGBTask(const char *arg)
  162. {
  163. (void)arg;
  164. while (1) {
  165. // GpioGetInputVal(WIFI_IOT_IO_NAME_GPIO_5, &Key_Status);
  166. switch(RGB_ctrl)
  167. {
  168. case 0:
  169. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_12, 1);
  170. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_11, 0);
  171. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_10, 0);
  172. usleep(RGB_INTERVAL_TIME_US);
  173. break;
  174. case 1:
  175. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_12, 0);
  176. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_11, 1);
  177. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_10, 0);
  178. usleep(RGB_INTERVAL_TIME_US);
  179. break;
  180. case 2:
  181. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_12, 0);
  182. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_11, 0);
  183. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_10, 1);
  184. usleep(RGB_INTERVAL_TIME_US);
  185. break;
  186. case 3:
  187. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_12, 1);
  188. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_11, 1);
  189. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_10, 1);
  190. usleep(RGB_INTERVAL_TIME_US);
  191. break;
  192. case 4:
  193. RGB_ctrl = 0;
  194. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_12, 0);
  195. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_11, 0);
  196. GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_10, 0);
  197. usleep(RGB_INTERVAL_TIME_US);
  198. break;
  199. }
  200. }
  201. return NULL;
  202. }
  203. static void RGBEntry(void)
  204. {
  205. osThreadAttr_t attr;
  206. GpioInit();
  207. IoSetFunc(WIFI_IOT_IO_NAME_GPIO_12, WIFI_IOT_IO_FUNC_GPIO_12_GPIO);
  208. GpioSetDir(WIFI_IOT_IO_NAME_GPIO_12, WIFI_IOT_GPIO_DIR_OUT);
  209. IoSetFunc(WIFI_IOT_IO_NAME_GPIO_11, WIFI_IOT_IO_FUNC_GPIO_11_GPIO);
  210. GpioSetDir(WIFI_IOT_IO_NAME_GPIO_11, WIFI_IOT_GPIO_DIR_OUT);
  211. IoSetFunc(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_IO_FUNC_GPIO_10_GPIO);
  212. GpioSetDir(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_GPIO_DIR_OUT);
  213. // AdcRead();
  214. attr.name = "RGBTask";
  215. attr.attr_bits = 0U;
  216. attr.cb_mem = NULL;
  217. attr.cb_size = 0U;
  218. attr.stack_mem = NULL;
  219. attr.stack_size = RGB_TASK_STACK_SIZE;
  220. attr.priority = RGB_TASK_PRIO;
  221. if (osThreadNew((osThreadFunc_t)RGBTask, NULL, &attr) == NULL) {
  222. printf("[KeyTask] Falied to create KeyTask!
  223. ");
  224. }
  225. }
  226. SYS_RUN(RGBEntry);
復(fù)制代碼


運(yùn)行效果:
224611ftttmp0fnrfmtwh1.jpg
`224302cc5e3i4tinr38lcz.png?
224614k4oqqofbd4dh4pdo.jpg
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • wi-fi
    +關(guān)注

    關(guān)注

    14

    文章

    2169

    瀏覽量

    124827
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1982

    瀏覽量

    30414
  • HiSpark
    +關(guān)注

    關(guān)注

    1

    文章

    156

    瀏覽量

    6945
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Wi-Fi 8要來了!未來Wi-Fi技術(shù)演進(jìn)方向揭秘

    產(chǎn)品銷售中,雖然Wi-Fi 7產(chǎn)品的銷量份額快速從年初的個(gè)位數(shù)百分比增長至14%,但Wi-Fi 6產(chǎn)品的銷量份額依然穩(wěn)定在60%左右。如果從存量設(shè)備來看,那么Wi-Fi
    的頭像 發(fā)表于 11-24 03:14 ?1935次閱讀
    <b class='flag-5'>Wi-Fi</b> 8要來了!未來<b class='flag-5'>Wi-Fi</b>技術(shù)演進(jìn)方向揭秘

    華為海思正式進(jìn)入Wi-Fi FEM賽道?

    轉(zhuǎn)載自——鐘林談芯 昨天在網(wǎng)上看到一份九聯(lián)UNR050 BE3600無線路由器拆機(jī)報(bào)告,Wi-Fi主芯片是海思新款Wi-Fi7芯片Hi1155,速率2.5G。 在海思AP Wi-Fi芯片系列中,還有
    發(fā)表于 12-11 17:42

    Wi-Fi 4到Wi-Fi 7:網(wǎng)速飆升40倍的無線革命

    1 Wi-Fi技術(shù)的快速發(fā)展 每一代新的Wi-Fi協(xié)議發(fā)布,都會(huì)帶來更高的無線速率。 ? 從Wi-Fi 4到Wi-Fi 7:無線網(wǎng)絡(luò)技術(shù)顯著
    的頭像 發(fā)表于 12-09 10:10 ?375次閱讀
    從<b class='flag-5'>Wi-Fi</b> 4到<b class='flag-5'>Wi-Fi</b> <b class='flag-5'>7</b>:網(wǎng)速飆升40倍的無線革命

    Wi-Fi 7有哪些底層技術(shù)優(yōu)勢(shì)

    您在多個(gè)Wi-Fi行業(yè)活動(dòng)中代表LitePoint。Wi-Fi 7帶來了哪些新穎且有趣的特點(diǎn)?
    的頭像 發(fā)表于 11-15 15:27 ?512次閱讀

    Wi-Fi 7Wi-Fi 6E有什么區(qū)別

    也許很多人還在考慮是否要將使用的Wi-Fi設(shè)備升級(jí)到Wi-Fi 6或Wi-Fi 6E,而這些標(biāo)準(zhǔn)的繼任者卻已經(jīng)開始“登堂入室”了。Wi-Fi 7
    的頭像 發(fā)表于 11-07 11:38 ?1079次閱讀

    網(wǎng)速快4倍!iPhone 16/Pro全系支持Wi-Fi 7

    在安卓全面普及Wi-Fi 7一年之后,蘋果終于在iPhone 16系列配備了Wi-Fi 7技術(shù),并且是全系支持。 相比之下,前代的iPhone 15不論是標(biāo)準(zhǔn)版還是Pro版都僅僅支持
    的頭像 發(fā)表于 09-10 09:31 ?672次閱讀

    華為Wi-Fi 7全系列AP獲WFA企業(yè)級(jí)WiFi7認(rèn)證,業(yè)界最多

    2024年是Wi-Fi 7全面商用元年,Wi-Fi聯(lián)盟從年初啟動(dòng)Wi-Fi 7產(chǎn)品認(rèn)證。憑借強(qiáng)大的研發(fā)能力和創(chuàng)新精神,華為不僅全球首發(fā)全場景
    的頭像 發(fā)表于 08-20 21:19 ?1464次閱讀

    Wi-Fi 7為射頻前端帶來哪些挑戰(zhàn)

    7 相較于前一代的Wi-Fi 6 在性能和功能上有了顯著提升,尤其是在速率、延遲和容量等方面,并以“極高容量”(EHT,ExtremelyHigh Throughput)為特色。
    的頭像 發(fā)表于 08-06 15:09 ?590次閱讀

    華為獲得全球首個(gè)國際Wi-Fi聯(lián)盟WFA企業(yè)級(jí)Wi-Fi 7認(rèn)證!

    Wi-Fi聯(lián)盟已發(fā)布Wi-Fi 7認(rèn)證標(biāo)準(zhǔn),華為是第一批送測廠商,獲得業(yè)界首個(gè)企業(yè)級(jí)Wi-Fi 7W
    的頭像 發(fā)表于 04-28 10:17 ?791次閱讀
    華為獲得全球首個(gè)國際<b class='flag-5'>Wi-Fi</b>聯(lián)盟WFA企業(yè)級(jí)<b class='flag-5'>Wi-Fi</b> <b class='flag-5'>7</b>認(rèn)證!

    驗(yàn)證物聯(lián)網(wǎng)Wi-Fi HaLow用例的MM6108-EKH08開發(fā)套件來啦

    驗(yàn)證物聯(lián)網(wǎng)Wi-Fi HaLow用例的MM6108-EKH08開發(fā)套件來啦 MM6108-EKH08開發(fā)套件專為驗(yàn)證物聯(lián)網(wǎng)Wi-Fi HaLow用例而設(shè)計(jì)。該
    的頭像 發(fā)表于 04-11 12:01 ?1819次閱讀
    驗(yàn)證物聯(lián)網(wǎng)<b class='flag-5'>Wi-Fi</b> HaLow用例的MM6108-EKH08開發(fā)<b class='flag-5'>套件</b>來啦

    Wi-Fi 7Wi-Fi 6的相關(guān)知識(shí)科普

    科普:Wi-Fi 7 vs. Wi-Fi 6,青出于藍(lán)
    的頭像 發(fā)表于 03-12 10:59 ?814次閱讀
    <b class='flag-5'>Wi-Fi</b> <b class='flag-5'>7</b>與<b class='flag-5'>Wi-Fi</b> 6的相關(guān)知識(shí)科普

    Wi-Fi的誕生與發(fā)展

    短距離無線通信技術(shù)有Wi-Fi、ZigBee、藍(lán)牙以及Z-Wave,今天我們先揭開Wi-Fi的神秘面紗。Chrent短距離無線通信技術(shù)——Wi-Fi過去的20多年,Wi-Fi靠著僅有的
    的頭像 發(fā)表于 03-07 08:26 ?1371次閱讀
    <b class='flag-5'>Wi-Fi</b>的誕生與發(fā)展

    Windows 11 Build 26063 新增 Wi-Fi 7 網(wǎng)絡(luò)測試,速度更快

    Wi-Fi 7Wi-Fi 6與Wi-Fi 6E的基礎(chǔ)上進(jìn)行升級(jí),提升了各個(gè)領(lǐng)域的無線連接性能,包括傳輸速率、延遲、效率、牢靠度及能耗,旨在提供更好的用戶體驗(yàn)。
    的頭像 發(fā)表于 02-23 10:35 ?977次閱讀

    Wi-Fi 7商用元年:更寬的路應(yīng)跑更好的車

    來源:中國電子報(bào) 近日,Wi-Fi聯(lián)盟正式確認(rèn)了Wi-Fi 7認(rèn)證標(biāo)準(zhǔn),標(biāo)志著無線通信技術(shù)進(jìn)入了一個(gè)新階段。隨著智能設(shè)備及物聯(lián)網(wǎng)的普及,人們對(duì)可靠、快速無線通信的需求日益增強(qiáng),Wi-Fi
    的頭像 發(fā)表于 02-21 11:36 ?515次閱讀

    Wi-Fi HaLow和傳統(tǒng)Wi-Fi的區(qū)別

    Wi-Fi HaLow和傳統(tǒng)Wi-Fi的區(qū)別? Wi-Fi是一種無線網(wǎng)絡(luò)技術(shù),可以連接到互聯(lián)網(wǎng)或局域網(wǎng),為用戶提供無線上網(wǎng)的便利。隨著科技的發(fā)展和互聯(lián)網(wǎng)的普及,Wi-Fi也在不斷演進(jìn)和
    的頭像 發(fā)表于 02-02 15:28 ?1414次閱讀
    主站蜘蛛池模板: 人成片在线观看亚洲无遮拦| brazzers巨臀系列| 影音先锋 av天堂| 94色94色永久网站| 大香伊人久久精品一区二区| 国偷自产AV一区二区三区健身房| 美女扒开尿孔| 少妇高潮久久久久7777| 野花社区视频WWW高清| 波多野结衣教师系列6| 国语自产偷成人精品视频| 女人和男人插曲视频大全| 午夜爱情动作片P| 最近中文字幕完整版高清| 国产成人精品免费视频下载| 久久精品中文字幕免费| 日本经典片免费看| 一区二区三区无码高清视频| 成人伊人青草久久综合网| 久久er国产免费精品| 三级黄色一级视频| 中文字幕无码亚洲字幕成A人蜜桃| 高h肉肉乳共妻| 美女强奷到抽搐在线播放| 雪恋电影完整版免费观看| 999久久久国产精品蜜臀AV| 国产精品久久久久影院免费| 嗯 用力啊 嗯 c我 啊哈老师| 亚洲av欧美在我| 操老太太的逼| 久久久久亚洲| 无码国产精品高潮久久9| 99久久久久国产精品免费| 狠狠啪在线香蕉| 肉肉高潮液体高干文H| 3D漫画H精品啪啪无码| 国产人妻麻豆蜜桃色69| 青柠在线观看视频在线| 在线观看插女生免费版| 国产日韩高清一区二区三区| 青青草在线视频|