<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                * 導師視頻講解:[**去聽課**](https://www.bilibili.com/video/BV1k34y1D7Vz/) >[success] **技術支持說明:** >**1**.一般以自主學習為主 > **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/zigbee) > **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解! <br/> ## **HAL ADC API 簡介** HAL提供了完善的ADC驅動API,其定義在hal\_adc.h和hal\_adc.c中,如下圖所示。 ![](https://img.kancloud.cn/62/7a/627a5ba36f059bb6a8a871f6c7d6df15_246x400.png =190x) ![](https://img.kancloud.cn/97/97/9797df427322b982e8a131a5aeb5344c_272x564.png =200x) ### 前面章節中已經詳細講解了ADC的原理,本節課主要介紹一下HAL ADC API。打開hal\_adc.h文件,可以找到如下API: ### ``` /*?? ?*?Read?value?from?a?specified?ADC?Channel?at?the?given?resolution ?*? ?*?@param channel - 取值范圍是0 ~ 7,分別對應CC2530的P0_0 ~ P0_7引腳 ?*?@param resolution - 采樣精度 ?*/???? extern?uint16?HalAdcRead?(?uint8?channel,?uint8?resolution?); ``` ### 其中的resolution參數取值范圍如下圖所示: ![](https://img.kancloud.cn/8f/9b/8f9b014cf071107f2b07a4fda7059f11_662x150.png =600x) ### 如果需要使用8位的采樣精度來采P0\_0的ADC值,可按一下方式調用HalAdcRead: ### ``` 1.uint8?adcVal;?? 2.adcVal?=?HalAdcRead(HAL_ADC_CHANNEL_0,?HAL_ADC_RESOLUTION_8); ``` ### 其中的HAL\_ADC\_CHANNEL\_0表示通道0,對應CC2530的P0\_0引腳。hal\_adc.h文件中定義了8個采用通道,如下圖所示。 ![](https://img.kancloud.cn/14/c2/14c23a9c94ad437fe776d4eeb284fcb9_660x260.png =400x) <br/> ## **HAL ADC 實驗** 本次實驗結合了HAL的LED、按鍵、串口、顯示屏和ADC的相關API實現在按下按鍵后,閃爍LED燈和啟動ADC采樣,同時把采樣值顯示到顯示屏中和發送到串口中。 本章實驗我們結合按鍵、LED、顯示屏、ADC、串口實現這樣一個功能:按鍵按下時ADC采樣同時閃爍RGB燈,然后將采樣值在顯示屏上顯示,同時把采樣值發送給串口!使用ADC需要包含相應的頭文件:hal\_adc.h。 ### 在應用層的按鍵處理函數zclSampleSw\_HandleKeys中添加如下代碼: ### ``` static?void?zclSampleSw_HandleKeys(?byte?shift,?byte?keys?)???? {????? UI_MainStateMachine(keys); if(keys?&?HAL_KEY_SW_6) {???? uint8?adcVal; char?adcStr[30]; /*?讀取通道7的ADC數值,在配套的ZigBee開發板中,P0_7是鏈接著光照傳感器?*/ adcVal?=?HalAdcRead(?HAL_ADC_CHANNEL_7,?HAL_ADC_RESOLUTION_8?);???? /*?閃爍LED燈?*/?? ???? HalLedBlink(HAL_LED_1,?10,?50,?400);???//?Red???? ???? HalLedBlink(HAL_LED_2,?10,?50,?1000);??//?Green???? HalLedBlink(HAL_LED_3,?10,?50,?2000);??//?Blue???? ??? ???? /*?格式化數據到字符串?*/?? ???? sprintf(adcStr,?"ADC:?%d\n",?adcVal);???? ??? ???? /*?在顯示屏上將ADC值顯示在第四行?*/?? ???? HalLcdWriteString(adcStr,?HAL_LCD_LINE_4);?? ??????? ???? /*?將ADC數值通過串口發送到串口調試助手?*/?? ???? HalUARTWrite(HAL_UART_PORT_0,?(uint8?*)adcStr,?osal_strlen(adcStr));???? }???? } ``` <br/> ## **仿真調試** 編譯整個工程,然后把程序燒錄到開發板中,用Micro USB線連接ZigBee開發板和電腦后,當按下按鍵時,可以看到屏幕的第四行顯示了ADC的值,同時在串口助手中同樣也可以看到,如下圖所示。 ![](https://img.kancloud.cn/80/c6/80c6c4b565a66c9f804abc2562e4d107_682x536.png =600x) <br/> <br/> ## **項目定制** * 如需項目定制開發,可掃碼添加項目經理好友(注明“**項目定制**”) * 定制范圍:**NB-IoT**、**CATn(4G)**、**WiFi**、**ZigBee**、**BLE Mesh**以及**STM32**、**嵌入式Linux**等IoT技術方案 * 善學坊官網:[www.sxf-iot.com](https://www.sxf-iot.com/) ![](https://img.kancloud.cn/ca/73/ca739f92cab220a3059378642e3bd502_430x430.png =200x) * 非項目定制**勿擾**,此處**非**技術支持
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看