XR806開發板ST7789LCD屏幕測試
1
屏幕硬件
連接
本文使用的LCD屏幕的原理圖如下,可以確定LCD屏幕的控制引腳接線。

XR806與LCD屏幕的控制引腳分布如下

實際的連接效果如圖所示

2
驅動編寫
ST7789的驅動使用中景園的LCD驅動庫,驅動文件包括:
lcd.c
lcd.h
lcd_init.c
lcd_init.h
lcd_font.h
在XR806的示例程序中GPIO工程的基礎上進行移植。在gpio示例文件夾中添加lcd的驅動代碼。

移植時要實現對LCD引腳的控制,在lcd_init.h中添加以下代碼
#include "driver/chip/hal_gpio.h" #include "kernel/os/os.h" #define LCD_SCLK_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_7, GPIO_PIN_LOW) #define LCD_SCLK_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_7, GPIO_PIN_HIGH) #define LCD_MOSI_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_4, GPIO_PIN_LOW) #define LCD_MOSI_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_4, GPIO_PIN_HIGH) #define LCD_RES_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_5, GPIO_PIN_LOW) #define LCD_RES_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_5, GPIO_PIN_HIGH) #define LCD_DC_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_3, GPIO_PIN_LOW) #define LCD_DC_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_3, GPIO_PIN_HIGH) #define LCD_CS_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_6, GPIO_PIN_LOW) #define LCD_CS_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_6, GPIO_PIN_HIGH) //硬件上沒有給出控制接口,這里不做定義 #define LCD_BLK_Clr() #define LCD_BLK_Set()
在lcd_init.c中添加引腳的初始化函數,并替換延時函數為OS_MSleep,相關的代碼如下:
#include "lcd_init.h"
void LCD_GPIO_Init(void)
{
GPIO_InitParam param;
param.driving = GPIO_DRIVING_LEVEL_1;
param.mode = GPIOx_Pn_F1_OUTPUT;
param.pull = GPIO_PULL_NONE;
HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_3, ¶m);
HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_4, ¶m);
HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_5, ¶m);
HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_6, ¶m);
HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_7, ¶m);
}
void LCD_Init(void)
{
LCD_GPIO_Init();
LCD_RES_Clr();
OS_MSleep(100);//替換延時函數
LCD_RES_Set();
OS_MSleep(100);
//以下代碼忽略
}
在main.c中添加以下代碼
int main(void)
{
LCD_Init();
OS_MSleep(100);
LCD_Fill(0, 0, LCD_W, LCD_H, RED);
// LCD_ShowString(4, 0, "XR806 LCD Test", RED, CYAN, 16, 0);
LCD_DrawRectangle(0, 0, LCD_W - 1, LCD_H - 1, MAGENTA);
LCD_DrawRectangle(1, 1, LCD_W - 2, LCD_H - 2, MAGENTA);
while (1)
{
OS_MSleep(1000);
LCD_Fill(0, 0, LCD_W, LCD_H, BLUE);
OS_MSleep(1000);
LCD_Fill(0, 0, LCD_W, LCD_H, GREEN);
OS_MSleep(1000);
LCD_Fill(0, 0, LCD_W, LCD_H, YELLOW);
OS_MSleep(1000);
LCD_Fill(0, 0, LCD_W, LCD_H, LIGHTGREEN);
printf("XR806 LCD Test
");
}
return 0;
}
3
屏幕驅動
效果
編譯下載后,可以看到屏幕的顏色切換以及串口的數據輸出


審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
LCD屏
+關注
關注
0文章
132瀏覽量
16537 -
GPIO
+關注
關注
16文章
1328瀏覽量
56218 -
串口輸出
+關注
關注
0文章
18瀏覽量
7822 -
xr806
+關注
關注
0文章
14瀏覽量
1587
原文標題:XR806開發板進行ST7789LCD屏幕測試
文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
基于全志XR806開發板的家用環境監測傳感器設計
本文來自全志XR806開發板評測活動文章,作者使用XR806開發板制作一個簡單的家用環境監測傳感器,可以獲取當前的溫度、濕度、氣壓、海拔這四個參數,同時能夠通過外部的
XR806芯片、XR806開源鴻蒙開發板簡介
。可廣泛滿足 智能家居、智慧樓宇、工業互聯、兒童玩具、電子競賽、極客DIY 等領域的無線連接需求。芯片框圖芯片參數XR806開源鴻蒙開發板介紹XR806開發板是基于
發表于 11-15 17:08
XR806芯片、XR806開源鴻蒙開發板簡介
。可廣泛滿足 智能家居、智慧樓宇、工業互聯、兒童玩具、電子競賽、極客DIY 等領域的無線連接需求。芯片框圖芯片參數XR806開源鴻蒙開發板介紹XR806開發板是基于
發表于 11-15 18:32
在全志XR806上移植st7789屏幕驅動
\");
st7789_set_orientation(DISPLAY_ORIENTATION);
硬件連接如圖所示
屏幕
開發板
BLK
B14
CS
B06
DC
B03
RES
VCC
發表于 11-10 10:21
簡述XR806開發板與STAR-MC1處理器
全志XR806開發板基于XR806芯片設計,搭載了安謀中國的星辰系列STAR-MC1處理器。該開發板體積較小,具備WiFi、低功耗藍牙技術等功能,技術集成度高,成本低,支持鴻蒙系統,能
【XR806開發板試用】留言板功能開發
XR806開源鴻蒙開發板是一款基于XR806芯片設計,高度集成WiFi/BLE/常用外設,可供開發者進行方案評估、DIY或小規模產品研發,可
XR806開發板進行ST7789LCD屏幕測試步驟
評論