# st7735屏幕驱动组件
**Repository Path**: oneos-ability/st7735-component
## Basic Information
- **Project Name**: st7735屏幕驱动组件
- **Description**: 基于OneOS的st7735屏幕驱动组件
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-11-07
- **Last Updated**: 2024-11-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ST7735
## 1、介绍
这是一个在Oneos上,ST7735-SPI屏幕的驱动。代码实现了屏幕的显示,并支持点、线、字符等多种显示命令。 本驱动可直接通过menuconfig直接进行配置,开发使用方便,使能后可直接使用。由于Oneos的GD32F1的SPI驱动并未完善,所以在移植本驱动时同时也完善的Oneos的GD32F1系列SPI驱动程序。
### 1.1 目录结构
Lib_Dev为驱动代码路径
**dev_spi.c** **drv_spi.c** **drv_spi.h**这三个文件为GD32F1修改的Oneos驱动,其它MCU无需使用。
| 名称 | 说明 |
| ------------ | ---------------------- |
| docs/api.md | 应用编程接口说明 |
| st7735_spi.c | st7735_spi驱动源文件 |
| st7735_spi.h | st7735_spi驱动头文件 |
| st7735_lcd.c | st7735_lcd应用层源文件 |
| st7735_lcd.h | st7735_lcd应用层头文件 |
| SConscript | Oneos编译构建脚本 |
| Kconfig | menuconfig配置文件 |
| README.md | 软件包使用说明 |
### 1.2 许可证
本驱动 遵循 `LGPLv2.1` 许可,详见 `LICENSE` 文件。
### 1.3 依赖
依赖 `Oneos SPI` 设备驱动框架。
## 2、如何获取软件包
Gitee链接如下:[GD32F1-SPI+ST7735](https://gitee.com/lele_0101/oneos--gd32-f1--spi--st7735.git)
## 3、如何使用代码包
本驱动实现基于Oneos的SPI设备驱动框架,在打开 使能ST7735后,请务必打开至少1个SPI设备。
### 1. 解压源代码
收下你从Oneos官网下载一份代码,进行解压。
### 2. 创建GD321F工程
然后直接将Lib_Dev粘贴到GD32工程根目录下。

将工程根目录下的Kconfig文件更换为我所提供的Kconfig文件。

### 3. 修改驱动文件

将**OneOS-master\projects\GD32F103VE\board\peripheral**下的dev_spi.c文件替换为我提供的SPI文件。
将**OneOS-master\drivers\hal\gd\drivers\f10x**下的drv_spi.c和drv_spi.h替换为我提供的驱动文件

到这里就完成了驱动的移植。
### 4. menuconfig配置
在工程目录下打开menuconfig,打开Onboard Peripheral Drivers选项卡

直接使用ST7735驱动,下面的SPI引脚需要根据各自的SPI引脚进行适配。我在GD321上使用的SPI0,对应的引脚就是这四个

在Drivers/HAL中打开对应SPI的驱动,然后保存,scons--ide=mdk5生成工程代码。

### 5. 修改内存文件
不知道为什么,GD32F1生成的工程,Flash和ROM映射的地址都不对。

将CONFIG_BSP_TEXT_SECTION_ADDR 改为0x08000000
将CONFIG_BSP_TEXT_SECTION_SIZE 改为0x00080000
然后再重新用scons编译,不改会出现程序无法运行。

## 4、编译运行
修改完成后就可以编译运行了。使用起来还是比较简单的,我在驱动中用了ulog日志,如果需要调试请打开ulog显示日志。
OS_APP_INIT(display_st7735_sample,OS_INIT_SUBLEVEL_MIDDLE);
在st7735_lcd.c中有一个sample的app,屏幕会固定时间刷新。当启动ST7735后它会自动运行。
