<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

移植st7789屏幕驅動教程

全志在線 ? 來源:全志在線開發者論壇 ? 2023-10-21 16:35 ? 次閱讀

移植st7789屏幕驅動

真的不要太簡單~

ST7789是一款高度集成的彩色TFT液晶顯示屏控制器芯片,通常用于驅動小到中等尺寸的液晶屏。例如淘寶上常見的1.4寸、1.47寸、1.69寸屏幕等等。

309b382e-6feb-11ee-939d-92fbcf53809c.png30cf670c-6feb-11ee-939d-92fbcf53809c.png

為什么RES引腳直接接的VCC,因為不知道具體是哪一塊出了問題。RES引腳接到推挽輸出的IO引腳后,屏幕也能點亮,但是亮度莫名其妙很低。手上幾個屏都測試了一下,都這樣。

1st7789驅動

移植

現在就開始吧,首先新建st7789.c和st7789.h文件。然后創建用于初始化st7789芯片的命令序列表。

static lcd_init_cmd_t st7789_init_cmds[] = {
  {0x01, {0}, 0x80, 120},
  /* Sleep Out */
  {0x11, {0}, 0x80, 120},
  /* Memory Data Access Control, MX=MV=1, MY=ML=MH=0, RGB=0 */
  {0x36, {0x00}, 1},
  /* Interface Pixel Format, 16bits/pixel for RGB/MCU interface */
  {0x3A, {0x05}, 1},

這個序列表使用的是這樣的數據結構:

310dd974-6feb-11ee-939d-92fbcf53809c.png

在創建列表后編寫初始化函數,這里把gpio和spi的初始化也都放在里面了。

然后就是編寫一下寫命令和寫數據的函數,寫命令時需要設置一下DC引腳,然后寫完立即將DC引腳切換回高電平。

static void st7789_send_cmd(uint8_t cmd) {
 gpio_set_level(disp_pin_dc, 0);
 dirver_spi_send_data(&cmd, 1);
 gpio_set_level(disp_pin_dc, 1);
}
static void st7789_send_data(void *data, uint16_t length) {
 dirver_spi_send_data(data, length);
}

編寫屏幕翻轉配置函數:

printf("Display orientation: %s
", orientation_str[orientation]);


 uint8_t data[] = {0xC0, 0x00, 0x60, 0xA0};


 printf("0x36 command value: 0x%02X
", data[orientation]);


 st7789_send_cmd(ST7789_MADCTL);
 st7789_send_data((void *)&data[orientation], 1);

最后再寫一下寫屏函數即可,這里為了快速刷屏,設置了比較大的緩存區。目前還不會使用XR806的DMA,學會了可以減少緩存RAM的大小。

uint8_t data[4] = {0};


 uint16_t offsetx1 = x1;
 uint16_t offsetx2 = x2;
 uint16_t offsety1 = y1;
 uint16_t offsety2 = y2;


#if (TFT_DISPLAY_OFFSETS)
 offsetx1 += TFT_DISPLAY_X_OFFSET;
 offsetx2 += TFT_DISPLAY_X_OFFSET;
 offsety1 += TFT_DISPLAY_Y_OFFSET;
 offsety2 += TFT_DISPLAY_Y_OFFSET;

2刷屏函數

添加

還需要添加一個刷屏函數作為測試,現在補一下。


由于1.69寸屏幕不需要設置屏幕窗口偏移量,就直接按滿屏來刷了。

void lcd_clear(uint16_t color) { st7789_flush(0, 240, 0, 320, color); }

然后在main.c里調用屏幕初始化和刷屏函數就可以啦。

3刷屏效果

展示

經過測試,手上的1.47寸屏幕和1.69寸st7789屏幕都可以正常驅動。就是偏移值和屏幕分辨率設置需要再優化一下代碼。

3189318c-6feb-11ee-939d-92fbcf53809c.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    15329

    瀏覽量

    172269
  • 液晶屏
    +關注

    關注

    18

    文章

    679

    瀏覽量

    41860
  • 屏幕
    +關注

    關注

    6

    文章

    1162

    瀏覽量

    55407
  • 移植
    +關注

    關注

    1

    文章

    369

    瀏覽量

    27879
  • TFT
    TFT
    +關注

    關注

    10

    文章

    375

    瀏覽量

    109931

原文標題:移植手表屏驅動步驟方法詳解

文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外設與ST7789通信

    本篇詳細的記錄了如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外設與ST7789通信,驅動16bit TFT-LCD 屏幕。0. 前言學習 SPI 外設驅動L
    發表于 11-30 06:36

    STM32 SPI如何驅動ST7789 LCD ISP TFT液晶屏幕?

    STM32 SPI如何驅動ST7789 LCD ISP TFT液晶屏幕?
    發表于 12-17 06:39

    請問如何用D1s把st7789 i80點亮?

    如何用D1s把st7789 i80點亮?
    發表于 12-28 07:21

    實現ST7789圖像顯示的方法

    ESP32-CAM之ST7789圖像顯示最近筆者在學習使用安信可的ESP32-CAM開發板,該開發板自帶一個OV2640攝像頭。官方提供的例程可以將攝像頭視頻通過WIFI傳輸到網頁顯示,而筆者手里
    發表于 02-18 07:09

    請問CH579可以使用LVGL庫嗎?可以通過SPI驅動ST7789屏嗎?

    請問CH579可以使用LVGL庫嗎?可以通過SPI驅動ST7789屏嗎? CH579可以驅動ST7789屏嗎?
    發表于 08-10 07:01

    求助,請問CH579硬件SPI可以驅動ST7789屏嗎?

    請問CH579硬件SPI可以驅動ST7789屏嗎?
    發表于 09-06 06:12

    在全志XR806上移植st7789屏幕驅動

    驅動 ST7789是一款高度集成的彩色TFT液晶顯示屏控制器芯片,通常用于驅動小到中等尺寸的液晶屏。例如淘寶上常見的1.4寸、1.47寸、1.69寸屏幕等等。 現在就開始吧,首先新建
    發表于 11-10 10:21

    WeMOS D1 MIni(Esp8266)、NodeMCU與ST7789 TFT液晶顯示屏繪制圖形

    WeMOS D1 MIni與ST7789 FTF液晶顯示屏材料硬件連接圖庫安裝源代碼示例材料硬件連接圖庫安裝源代碼示例
    發表于 10-26 10:06 ?28次下載
    WeMOS D1 MIni(Esp8266)、NodeMCU與<b class='flag-5'>ST7789</b> TFT液晶顯示屏繪制圖形

    STM32單片機基礎17——使用硬件SPI驅動TFT-LCD(ST7789

    本篇詳細的記錄了如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外設與ST7789通信,驅動16bit TFT-LCD 屏幕。0. 前言學習 SPI 外設驅動L
    發表于 11-21 17:21 ?62次下載
    STM32單片機基礎17——使用硬件SPI<b class='flag-5'>驅動</b>TFT-LCD(<b class='flag-5'>ST7789</b>)

    【STM32Cube_17】使用硬件SPI驅動TFT-LCD(ST7789

    本篇詳細的記錄了如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外設與ST7789通信,驅動16bit TFT-LCD 屏幕。
    發表于 12-05 19:36 ?92次下載
    【STM32Cube_17】使用硬件SPI<b class='flag-5'>驅動</b>TFT-LCD(<b class='flag-5'>ST7789</b>)

    STM32:FSMC驅動TFTLCD(ST7789)

    最近項目使用STM32F407驅動tft彩屏,屏幕的內部驅動芯片為ST7789V,這個IC網上資料不多。廢話不說,直接上完整驅動代碼。1.代
    發表于 12-27 18:58 ?134次下載
    STM32:FSMC<b class='flag-5'>驅動</b>TFTLCD(<b class='flag-5'>ST7789</b>)

    使用Visuino程序將SSD1331 OLED和ST7789顯示器連接到Arduino

    電子發燒友網站提供《使用Visuino程序將SSD1331 OLED和ST7789顯示器連接到Arduino.zip》資料免費下載
    發表于 11-02 15:02 ?1次下載
    使用Visuino程序將SSD1331 OLED和<b class='flag-5'>ST7789</b>顯示器連接到Arduino

    讓我們為Arduino和ST7789顯示器設計一個盾牌

    電子發燒友網站提供《讓我們為Arduino和ST7789顯示器設計一個盾牌.zip》資料免費下載
    發表于 06-27 14:30 ?5次下載
    讓我們為Arduino和<b class='flag-5'>ST7789</b>顯示器設計一個盾牌

    ST7789屏幕初始化的步驟

    st7789屏幕構建系統和配置 驅屏就是初始化 DC轉換和cs
    的頭像 發表于 10-16 09:27 ?2976次閱讀

    【XR806開發板試用】移植st7789屏幕驅動

    如果提示 Username for : 請輸入 全志在線開發者論壇 的用戶名和密碼。(注:需要全志在線開發者論壇LV2等級以上用戶才有權限拉取 SDK,隨便注冊個賬戶,灌灌水就到了)
    的頭像 發表于 10-16 11:01 ?415次閱讀
    【XR806開發板試用】<b class='flag-5'>移植</b><b class='flag-5'>st7789</b><b class='flag-5'>屏幕</b><b class='flag-5'>驅動</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>