<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之旅 廣告
                >[success] **技術支持說明** > 1.**客服**提供簡單的技術支持,一般自主學習為主 > 2.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/zigbee) > 3.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解! >[danger] 學習本節內容前,先檢查您是否有屏幕是否為TFT屏幕,若無則可跳過本章節。 > 0.96英寸TFT屏幕的引腳數量為**8個**,引腳名稱依次為GND、VCC、SCL、SDA、RES、DC、CS和BLK。若這與您的一致,那么您的是0.96英寸TFT屏幕 <br/> 前面章節講解了如何使用OLED12864,但是OLED12864只能顯示單一的顏色,無法顯示彩色。本節課將要講解TFT是一種LCD顯示器,支持彩色顯示。 <br/> ## **TFT顯示器簡介** TFT-LCD(Thin Film Transistor-Liquid Crystal Display),即薄膜晶體管液晶顯示器,屏幕中的每一個像素點配備有有一個薄膜晶體管。 ### 可以使用16位的RGB值來配置這個晶體管的彩色。這個16位的RGB值中的左邊5位表示Red,中間6位表示Green,右邊的5位表示Blue,如下圖所示。 ![](https://img.kancloud.cn/9c/b4/9cb4509f6423cd66b8a1be91a646b636_830x38.png =600x) ### 開發套件中的0.96英寸TFT顯示屏的實物圖如下圖所示,其分辨率是64×128像素,即縱向有64個像素點、橫向有128個像素點。 ![](https://img.kancloud.cn/bd/02/bd0252eda482daf90a4c969f21a40cc3_320x312.png =200x) ### **通信協議** 與OLED12864類型,這個TFT顯示屏也是支持SPI協議驅動的。如需了解SPI協議的相關知識,可參考OLED12864章節。 ### **字庫與圖庫** 與OLED12864類似,為了讓TFT屏幕能夠正常地顯示各種字符和圖片,同樣需要準備好字庫和圖庫。 <br/> ## **TFT顯示器 驅動 API** 為驅動TFT顯示器,筆者設計了相應驅動API供讀者學習和使用。 ### 與OLED12864類似,TFT顯示器的驅動API可分為兩個層次,分別是**上層的TFT顯示API**和**下層的SPI驅動API**。其中的下層的SPI驅動API與OLED12864的一致,如需詳細了解相關信息可參考OLED12864章節。 ### 驅動API還需要字庫和圖庫文件配合工作。這3者在如圖所示位置。 ![](https://img.kancloud.cn/c5/50/c550d092bd56cdb4e7e7937a64a45f6d_426x316.png =300x) <br/> ### **TFT顯示API** 在配置好顯示屏引腳和字庫文件后,調用TFT顯示API即可在屏幕上顯示指定的內容。打開TFT文件夾中的hal_tft.h文件,可以找到TFT顯示API定義代碼: ### ``` /** * @fn halTFTInit * * @brief 初始化TFT屏幕,使用TFT屏幕前必須先調用此函數 * * @param screenColor - 屏幕顏色的RGB值,用于指定屏幕的默認顏色 */ void halTFTInit(uint16 screenColor); /** * @fn halTFTSetScreen * * @brief 設定整個屏幕的顏色,具有清除屏幕顯示內容的作用 * * @param screenColor - 屏幕顏色的RGB值 */ void halTFTSetScreen(uint16 screenColor); /** * @fn halTFTShowX16 * * @brief 在屏幕上顯示高度為16像素的字符串,支持的字符格式:1. 8x16 ASCII碼;2. 16x16 漢字 * * * @param x - 指定在橫向從左邊數起第x個像素開始顯示圖像,參數值范圍:0 ~ 127 * @param y - 指定在縱向從上邊數起的第y個像素開始顯示圖像,參數值范圍:0 ~ 64 * @param fontColor - 字體顏色的RGB值 * @param backgroundColor - 背景顏色的RGB值 * @param str - 待顯示的字符串 * * @warning 16x16漢字 的需要先在此文件中定義FONT_TABLE_CHINESE_16x16 */ void halTFTShowX16(uint16 x, uint16 y, uint16 fontColor, uint16 backgroundColor, const uint8 *str); /** * @fn halTFTShowPicture * * @brief Show Picture * * @param x - 指定在橫向從左邊數起第x個像素開始顯示圖像,參數值范圍:0 ~ 127 * @param y - 指定在縱向從上邊數起的第y個像素開始顯示圖像,參數值范圍:0 ~ 64 * @param picWidth - 圖片的寬度,參數值范圍:1~128 * @param picHeight - 圖片的高度,參數值范圍:1~64 * @param pic - 待顯示的圖片 */ void halTFTShowPicture(uint8 x, uint8 y, uint8 picWidth, uint8 picHeight, const uint8 *pic); ``` ### **halTFTShowX16 使用詳解** TFT顯示屏的分辨率為64x128像素,可以把其理解為**64行和128列**的二維表格。halTFTShowX16函數支持顯示8x16的標準ASCII字符和16x16的漢字,其中的8x16是指占據8行的16列的字體、16x16是指占據16行和16列的字體。 ### **顏色的RGB值** 上述代碼中提及到了RGB值,筆者預定義了一些RGB值作為參考,可以在在hal_tft.h文件中找打相關代碼定義: ``` #define HAL_TFT_PIXEL_RED 0xF800 //!< Red. #define HAL_TFT_PIXEL_GREEN 0x07E0 //!< Green. #define HAL_TFT_PIXEL_BLUE 0x001F //!< Blue. #define HAL_TFT_PIXEL_BLACK 0x0000 //!< Black. #define HAL_TFT_PIXEL_WHITE 0xFFFF //!< White. #define HAL_TFT_PIXEL_YELLOW 0xFFE0 //!< Yellow. #define HAL_TFT_PIXEL_GRAY 0xEF7D //!< Gray. ``` <br/> ### **顯示屏的引腳配置** 在調用上述顯示API前,需要先進行顯示屏引腳配置,即將顯示器的引腳與CC2530的GPIO接口配置上。TFT顯示器包含如下8個引腳: * GND * VCC * SCL * SDA * RES * DC * CS * BLK 雖然TFT顯示器的引腳與OLED12864的略有不同,但是引腳配置卻是相同的。它們兩使用同一份配置代碼,具體可參考OLED中的引腳配置說明。 <br/> ### **配置字庫** 字庫配置方式與OLED12864中使用的方式幾乎相同,知識取模參數略有不同:使用**橫向取模**,且不進行**字節倒序**。 <br/> ### **配置圖庫** 由于TFT顯示器支持彩色顯示,因此其圖片取模的方式與OLED12864 的區別較大。在本課程配套的軟件工具中找到可以找到“圖片取模軟件\\Image2Lcd 2.9”,運行軟件,如圖所示。 ![](https://img.kancloud.cn/9d/7b/9d7b5ed5fbcfb45873f3e7df69a73ab4_668x528.png =500x) >[warning] 如您還沒有下載本課程配套的軟件工具,可以前往下載頁下載:[前往](2316129) ### 導入圖片后,按如下參數設置取模方式,點擊保存后即可生成對應的圖庫。 ![](https://img.kancloud.cn/b8/78/b87862e4575a35a17baeed8e0a4b764a_754x676.png =600x) <br/> ## **使用TFT顯示API** 在配置好顯示屏引腳、字庫和圖庫文件后,調用TFT顯示API即可在屏幕上顯示內容。打開配套的工程,打開TFT12864文件夾中的main.c,可以看到使用TFT顯示器的示例代碼。 ### ``` #include "hal_TFT.h" #include "font_rgb_picture.h" #include "hal_delay.h" #define RED HAL_TFT_PIXEL_RED #define GREEN HAL_TFT_PIXEL_GREEN #define BLUE HAL_TFT_PIXEL_BLUE #define YELLOW HAL_TFT_PIXEL_YELLOW #define WHITE HAL_TFT_PIXEL_WHITE #define BLACK HAL_TFT_PIXEL_BLACK void main(void) { setSystemClk32MHZ();//初始化系統時鐘頻率 halTFTInit(HAL_TFT_PIXEL_WHITE);//初始化TFT屏幕,并指定默認顏色為白色 delayMs(SYSCLK_32MHZ, 500);//延后0.5ms在接著執行下面的代碼 while(1) { /* Test1 - 變換屏幕顏色 */ halTFTSetScreen(RED); delayMs(SYSCLK_32MHZ, 500); halTFTSetScreen(GREEN); delayMs(SYSCLK_32MHZ, 500); halTFTSetScreen(BLUE); delayMs(SYSCLK_32MHZ, 500); halTFTSetScreen(YELLOW); delayMs(SYSCLK_32MHZ, 500); halTFTSetScreen(WHITE); delayMs(SYSCLK_32MHZ, 1000); /* Test2 - 顯示 8x16 ASCII字符 and 16x16 漢字 */ halTFTShowX16(0, 0, BLACK, WHITE, "今天: 2018/1/31"); halTFTShowX16(0, 16, RED, WHITE, "氣溫(T & H):"); halTFTShowX16(0, 32, BLUE, WHITE, "Temperature: 25"); halTFTShowX16(0, 48, BLUE, WHITE, "Humidity: 30%"); /* 注意:對于漢字,必須先取字模后存放到漢字字庫文件font_chinese_v_16x16.h中*/ delayMs(SYSCLK_32MHZ, 4000);延后4ms halTFTSetScreen(WHITE);//設備屏幕顏色為白色 /* Test3 - 在坐標(40像素, 12像素)處顯示分辨率為40x40像素的圖片 */ halTFTShowPicture(40,12, 40, 40, Picture_40x40_WeiXinIco); /*注意:對于圖片,系需要先取模后存放在字庫文件font_v_picture.h中*/ delayMs(SYSCLK_32MHZ, 4000);//延遲 } } ``` <br/> ## **調試仿真** >[danger] 在學習本節課前,需要先掌握基本的程序下載及仿真操作,參考:[程序下載及仿真](2482302) * 按如圖所示,把屏幕插入到開發板中 ![](https://img.kancloud.cn/84/85/84852f831ad6ac8d0bd689e2d19703e7_2413x2071.png =200x) ![](https://img.kancloud.cn/c9/a9/c9a9efe184ae31fca6970f586409c457_1640x1316.png =150x) ### * 如果使用的是ZigBee標準板,需按如圖所示設置撥碼開關 ![](https://img.kancloud.cn/f9/7b/f97ba2493dbafcbdaf91167bab938cbc_652x1064.png =120x) ### * 打開本課程配套工程代碼,編譯并下載到開發板中,可以看到屏幕循環的顯示相應的內容! <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>

                              哎呀哎呀视频在线观看