STM32F103C8 + 1.8寸彩屏ST7735中文驱动程序
工程中搭建环境
- 软件: Keil 5.27
- 开发板: 魔女开发板 STM32F103C8
- 屏幕: 1.8寸TFT, 驱动ST7735
有图有真相,先看运行效果图, 代码下载在文章结尾处.
1.8寸屏参数简述
- 像素: 128 x 160, 如果显示时右边和下面有花屏, 在程序中加大一点这个数值基本能解决
- 驱动: ST7735, 小面积的彩屏很多都是这个驱动芯片, 0.96/1.44/1.8, 很通用
- 最大的参数:便宜实用, 才15元, 很适合实验时数据查看
和板子stm32f103c8的连接
- GND 电源地
- VCC 3.3V, 尽量不要接5V, 小心烧屏
- SCL/SCK PB4 SPI的时钟引脚, 代码是模拟SPI,所以不一定要接SPI的引脚
- SDA/DIN PB3 SPI的MOSI引脚 ,代码是模拟SPI,所以不一定要接SPI的引脚
- RES/RST PB0 复位引脚,最好和单片机的复位引脚相接
- DC /RS PB1 命令、数据选择引脚
- CS /CE PA4 SPI的CS片选引脚
- BL /LED PB10 控制背光LED, 高电平亮屏
ST7735驱动编程要点、技巧
- 三个要点:寄存器8位,命令+数据、字节发送处理
- 寄存器是8位的:命令8位的,而数据发送时一个跟一个;颜色值16位,要分两字节发送
- 命令+数据:不管写字符点还是刷屏,步骤都只是:先发命令,后发数据
- 发命令的操作:拉低 DC引脚,发送1个8位的命令值
- 发数据的操作:拉高 DC引脚,挨字节发出要发送数据
- 屏显方向:在发命令0x36后,紧跟的一字节数据为屏显方向,可选参数:C0/00/A0/60/C8/08/A8/68
- 花屏:如果右边或下边有花屏,表示像素没填充够,加大一点刷屏值,如130*163
- 英文、中文、图片: 其实都是画点和缓存的处理,参考代码
- SPI:目前网上能搜到的代码基本都是模拟SPI
代码编写
代码在文章尾部下载,欢迎下载参考.工程中已有详细注释,如果还有不明白的可以留言.
中文字库
因为我使用的开发板已带字库,包含12\16\24\32四种文字大小,如果你没有魔女开发板,当然可以使用自己的字库,也可以移植原子哥或野火的字库。有个小故事:19年时移植过字库, 头发都不用剪的!!
如果手里没有合适字库,就只能输出英文的ASCII喽。
文件移植
需要的3个文件都在TFT18文件夹里,整个文件夹复制吧: TFT18.c、TFT18.h、font.h
使用中文的话,还需要w25qxx.c文件的支持,如w25qxx_ReadBuffer();
- 在TFT18.h中修改6个引脚
- 我的字库在w25q128中,所以字库起址值在w25qxx.h中: GBK_STORAGE_ADDR,全文搜索这个宏定义吧
- 如果没有字库的兄弟,英文输出吧,只要#include "font.h" 就可以正常输出英文字符
程序完整代码下载
STM32F103C8+1.8寸ST7735彩屏中文程序.zip
没积分的兄弟Q群文件下载:262901124