<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                * 導師視頻講解:[**去聽課**](https://www.bilibili.com/video/BV1k34y1D7Vz/) >[success] **技術支持說明:** >**1**.一般以自主學習為主 > **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/zigbee) > **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解! <br/> 在前面C51單片開發章節中已經講解如果使用顯示器,開發只需要將相關的驅動程序一直到HAL中即可通過HAL來使用使用顯示器了。 <br/> ## **顯示屏驅動移植** 在本節課配套的工程代碼中,有一個“HAL更新”文件夾,如下圖所示。 ![](https://img.kancloud.cn/f7/eb/f7ebbcd21679e48719148dd38dc7e4af_598x212.png =200x) ### 筆者已經把前面章節用到的OLED12864和TFT12864彩屏的驅動程序y移植到了HAL,移植后的代碼就在hal文件夾中,如下圖所示。 ![](https://img.kancloud.cn/ff/c9/ffc988b3159d26cf9b565396a23d0074_612x288.png =200x) <br/> 其使用方法是: 1. 刪除協議棧中的hal文件夾,該文件夾在Z-Stack 3.0.1\\Components中 ### 2. 把HAL更新文件夾中的hal文件夾復制到Z-Stack 3.0.1\\Components中,即替換了協議棧中的hal文件夾,如下圖所示。 ![](https://img.kancloud.cn/57/21/57218b96d07c60c4c0b0568deac30cb7_644x1198.png =200x) ### 3. 替換成功后,可以在目錄Z-Stack 3.0.1\\Components\\hal\\target\\CC2530EB中找到顯示器驅動程序,如圖所示。 ![](https://img.kancloud.cn/07/e2/07e22a21b7939e87fa0f83f7968e1c34_338x262.png =120x) 這些驅動程序與前面章節用到的顯示器驅動程序是一樣的。 ### 4. **把驅動程序添加到工程中** A. 在HAL的Drivers下創建3個工程組,分別是Common、HW\_LCD和SPI,如圖所示。 ![](https://img.kancloud.cn/54/8d/548de0d2cffdabe3eeed2e6b70bee613_384x416.png =250x) B. 把相關的驅動程序添加進來,如圖所示。 ![](https://img.kancloud.cn/86/9b/869bc53b9e03f4b3fa8ce5c77c2aafbb_246x436.png =200x) ### 5. 添加路徑到工程,下文將會詳細說明。 <br/> ### **驅動程序說明** 上圖中的SPI是前面章節講解過的通用SPI驅動程序,Common中存放了延時函數和通用的IO配置程序,HW\_LCD中存放了字庫、LCD的SPI適配程序和顯示器的驅動。筆者移植過來的時候做了一些變量類型的兼容,主要是uint8和uint8\_t、uint16和uint\_16等類型兼容。 ### HW\_LCD的詳細內容如下圖所示。 ![](https://img.kancloud.cn/91/42/9142453e22ce243e72470f1c30635e22_510x420.png =300x) <br/> ### **添加路徑到工程** 最后,需要把驅動程序的路徑添加到工程中。在下圖中的Preprocessor中輸入以下代碼: ### ``` $PROJ_DIR$\..\..\..\..\..\Components\hal\target\CC2530EB\Common $PROJ_DIR$\..\..\..\..\..\Components\hal\target\CC2530EB\SPI $PROJ_DIR$\..\..\..\..\..\Components\hal\target\CC2530EB\HW_LCD\Font $PROJ_DIR$\..\..\..\..\..\Components\hal\target\CC2530EB\HW_LCD\HAL_LCD_SPI $PROJ_DIR$\..\..\..\..\..\Components\hal\target\CC2530EB\HW_LCD\HAL_OLED $PROJ_DIR$\..\..\..\..\..\Components\hal\target\CC2530EB\HW_LCD\HAL_TFT ``` ![](https://img.kancloud.cn/19/76/1976fc5e975aa4825f3a8ea5fd072c7e_772x740.png =600x) ### 至此,已經把顯示器驅動程序移植到了HAL中了,然后可以使用HAL為開發者準備的LCD API了。 <br/> ## **HAL LCD API** HAL提供了完善的顯示器驅動API,其定義在hal\_lcd.h和hal\_lcd.c中,如圖所示。 ![](https://img.kancloud.cn/5a/ec/5aecd615f0cd72beea8ad3a274843625_242x392.png =200x) ![](https://img.kancloud.cn/fc/04/fc04009e1c5f2050aa3c331cd8318233_270x408.png =200x) ### ### 打開hal\_lcd.h文件,可以找到如下顯示器API: ``` /** * 在指定的行中顯示字符串 * * @param str - 待顯示的字符串 * @param option - 在哪一行顯示數據 * */ void?HalLcdWriteString?(?char?*str,?uint8?option);???? /** * 在指定行用指定進制顯示數值 * * @param value - 待顯示的數值 * @param radix - 指定的進制 * @param option - 在哪一行顯示數據 * */ void?HalLcdWriteValue?(?uint32?value,?const?uint8?radix,?uint8?option);??? ``` ### 如果需要在在屏幕第一行顯示”Hello World!”,可按如下方式調用HalLcdWriteString: ### ``` HalLcdWriteString(?“Hello?World!”,??HAL_LCD_LINE_1?); ``` 如果需要第一行用10進制顯示一個變量的數值,可按如下方式調用HalLcdWriteValue: ### ``` 1.uint8?val?=?100; 2.HalLcdWriteValue ( val,??10,??HAL_LCD_LINE_1?); ``` <br/> ## **啟用 LCD 功能** 使用顯示器功能前,需要先開啟宏,HAL\_LCD。 1.如果使用的是配套的0.96寸OLED屏幕,在下圖中的Defined sybols中輸入以下代碼。 ``` HAL\_LCD=TRUE HAL\_LCD\_OLED12864 ``` ### 2.如果使用使用的是配套的0.96寸TFT屏幕,則輸入 ``` HAL\_LCD=TRUE ``` 如下圖所示。 ![](https://img.kancloud.cn/a1/d2/a1d29c40c925cd33da5a45f81f015020_832x824.png =600x) ### >[danger] 如何鑒別屏幕類型?請參考:[顯示器實驗](2482320) <br/> ## **調試仿真** 編譯整個工程,然后把程序燒錄到開發板中并全速運行,可以看到屏幕顯示了Z-Stack相關的調試信息。 <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>

                              哎呀哎呀视频在线观看