基于ZStack3.0.1(CC2530)和ST7735S的HAL_LCD驱动替换(一)

最近JN5169不是很容易得到,然后就从个人收藏里找出了压箱底依旧的CC2530来玩了,之前买的CC2530开发板只有OLED驱动,显示的内容有点忒少了。。。于是乎就动起了歪脑筋,刚巧手上的Zigbee开发板OLED插口PIN2PIN兼容这个TFT-LCD屏,所以。。。嘿嘿嘿
根据厂方的资料,驱动为ST7735S,从下载到的DataSheet来看,除去6800和8080两个我不太喜欢的并行接口(或者说从来没喜欢过)

The serial interface is either 3-lines/9-bits or 4-lines/8-bts bi-directional interface for communication between
the micro controller and the LCD driver. The 3-lines serial interface use: CSX (chip enable), SCL (serial clock)
and SDA (serial data input/output), and the 4-lines serial interface use: CSX (chip enable), D/CX (data/
command flag), SCL (serial clock) and SDA (serial data input/output). Serial clock (SCL) is used for interface
with MCU only, so it can be stopped when no communication is necessary.

根据资料里描述的,和模块上的针脚定义(VCC,GND,DIN,CLK,RST,D/C)我大胆猜测使用的是这种类I2C、类SPI的串行数据操作(呐呐呐,你看人家官方资料直接用的SCL和SDA这种I2C的俗称来对数据和时钟引脚进行定义的,然后又有一个片选引脚,所以我就说他是类I2C和类SPI的操作方式了),但是模块没有CS引脚,所以我想它应该是内部拉低了。然后剩下的4个引脚,那就是:
SDA =DIN,CLK=SCL,剩下的引脚就一一对应了,然后RST直接重置;
按照我一般的习惯来说,显示模块的驱动我习惯于拆成几个文件来体现:
fonts.h用于存储字库,因为zstack默认定义了hal_lcd的h和c文件,因此我就直接使用这两个文件来充当驱动本体了;
先说字库,这个还是相对比较容易生成的,ASCII码里面英文大小写,数字,和一部分英文符号,按照ASCII码的顺序在取模软件里填好让它自动生产就好了,比如以下的部分代码:
__code const unsigned char FONT_ASCII_7x14[][14]= { {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//" ",0 {0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00},//"!",1 {0x00,0x00,0x00,0xA0,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//""",2 {0x00,0x00,0x00,0x24,0x24,0xFE,0x48,0xFE,0x90,0x90,0x00,0x00,0x00,0x00},//"#",3 ......{0x00,0x00,0x00,0x00,0x00,0xCC,0x48,0x30,0x30,0x48,0xCC,0x00,0x00,0x00},//"x",88 {0x00,0x00,0x00,0x00,0x00,0x82,0x44,0x44,0x28,0x28,0x10,0x30,0xC0,0x00},//"y",89 {0x00,0x00,0x00,0x00,0x00,0xFC,0x08,0x10,0x20,0x40,0xFC,0x00,0x00,0x00},//"z",90 }
因为屏幕分辨率是128x128,8比较吉利,所以我就考虑每个英文字符占用16x8的分辨率来显示,据此中文则为16x16.但是为了防止字符挤到一块儿去,因此空出一个像素行来确保两行之间有一个空行。据此取模软件生成的如上字库内容,中文部分因为暂时没想好要写点啥,所以就先不管它了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值