HLK-W801开发-LVGL图像库移植,并驱动GC9A01圆形屏幕

本文介绍了如何在HLK-W801单片机上移植LVGL 8.2图像库,并驱动GC9A01圆形屏幕。详细步骤包括项目背景、主控芯片特性、屏幕介绍、项目目标、平台搭建、代码移植过程等。通过修改LVGL配置、编写SPI驱动和main函数,实现了图形界面在圆形屏幕上的显示。
摘要由CSDN通过智能技术生成

移植后的效果如上图所示,采用的LVGL版本是8.2,接下来是详细的移植过程。

项目来源简单介绍

某天在某宝瞎逛时,突然发现一款单片机,最小系统板只有9.9,这不正好戳中老夫穷逼的心,想到就现在就一块F103最小系统板也得要20、30元,而且仔细一看主频240M,支持WiFi/蓝牙,好家伙我直呼太香,于是果断入手。

主控芯片介绍

W801 芯片是基于平头哥XT804内核设计的soc芯片,支持2.4G IEEE802.11b/g/n Wi-Fi 通讯协议;支持 BT/BLE 双模工作模式,支持 BT/BLE4.2 协议。芯片集成32位 CPU 处理器,内置丰富数字接口;支持TEE安全引擎,支持多种硬件加解密算法,内置DSP、浮点运算单元与安全引擎,支持代码安全权限设置,内置2MBFlash存储器,支持固件加密存储、固件签名,适用于用于智能家居等广泛的物联网领域。

圆形屏幕

选择的是优信电子店铺下的,驱动芯片是GC9A01。

项目目标

最终是希望在W801芯片上实现开源项目SmartKonb智能旋钮开源项目的效果(其实做不到。。。)。

平台搭建和代码准备

1、安装剑池CDK

在平头哥官网下载,国产软件安装都很简单,几乎就是下一步,也没有破解的操作,直接上手就能用。

下载地址:https://occ.t-head.cn/product?id=3864775351511420928&type=soft

2、下载串口烧录软件

去联盛德官网搜W800,找到下面的页面,下载Upgrade_Tools_V1.4.8,无需安装,解压双击就能运行:

下载地址:https://www.winnermicro.com/html/1/156/158/558.html

3、下载W800SDK代码

我使用的是在海凌科官网下载的wm_sdk_w80x_20211115,解压到本地后,在wm_sdk_w80x_20211115\tools\w800\projects\SDK_Project\project\CDK_WS\W800_SDK目录下找到W800_SDK.cdkproj,双击打开工程项目。

下载地址:https://www.hlktech.com/Goods-199.html

4、下载LVGL-8.2和驱动代码代码

命令:git clone --recurse-submodules https://github.com/lvgl/lv_sim_visual_studio.git -b release/v8.2 
命令:git clone --recurse-submodules https://github.com/lvgl/lv_drivers.git -b release/v8.2

代码移植过程

1、前期代码准备

在wm_sdk_w80x_20211115目录下新建一个lvgl文件夹,将lvgl库下的src,examples文件夹和lvgl.h、lvgl_conf_template.h文件复制到新建目录下,并将lvgl_conf_template.h重命名为lvgl_conf.h

在examples目录下的porting文件夹中,将 lv_port_disp_template.c和lv_port_disp_template.h文件复制到lvgl目录下,并删除命名中的_template,删除porting文件夹。最终如下图所示:

 2、代码编写

2.1、将LVGL库加载进入项目下

在CDK编辑器下,左侧项目结构右键选择Add Source Folder,并选择刚刚新建的lvgl目录,点击添加即可。

 2.2、SPI驱动代码

在工程项目src目录下右键选择新建文件lcd.h  lcd.c  lcd_spi_dirver.h  lcd_spi_driver.c  四个文件 ,如下图所示:

 代码如下

lcd.h

#ifndef _LCD_H_
#define _LCD_H_
#include "lcd.h"
#include "wm_gpio_afsel.h"

#define LCD_SCL        	WM_IO_PB_15 //--->>TFT --SCL
#define LCD_SDA        	WM_IO_PB_17 //--->>TFT --SDA
#define LCD_RST     	WM_IO_PB_24	//--->>TFT --RST
#define LCD_DC         	WM_IO_PB_25	//--->>TFT --RS/DC
#define LCD_CS        	WM_IO_PB_14 //--->>TFT --CS
#define LCD_BL        	WM_IO_PB_27 //--->>TFT --BL

#define LCD_DC_SET   do{ tls_gpio_write(LCD_DC, 1);} while(0)   
#define LCD_LED_SET  do{ tls_gpio_write(LCD_BL, 1);} while(0)   
#define LCD_RST_SET  do{ tls_gpio_write(LCD_RST,1);} while(0)  

#define LCD_DC_CLR   do{ tls_gpio_write(LCD_DC, 0);} while(0) 
#define LCD_LED_CLR  do{ tls_gpio_write(LCD_BL, 0);} while(0)   
#define LCD_RST_CLR  do{ tls_gpio_write(LCD_RST,0);} while(0)     


#define X_MAX_PIXEL	        (128)
#define Y_MAX_PIXEL	        (160)


#define RED  	0xF800
#define GREEN	0x07E0
#define BLUE 	0x001F
#define WHITE	0xFFFF
#define BLACK	0x0000
#define YELLOW  0xFFE0
#define GRAY0   0xEF7D   	    
#define GRAY1   0x8410      	
#define GRAY2   0x4208      	


void LCD_GpioInit(void);

void LCD_Reset(void);

void LCD_Back_On(void);

v
  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值