# ST7735 **Repository Path**: cchmpy/st7735 ## Basic Information - **Project Name**: ST7735 - **Description**: 使用MicroPython编写的ST7735S显示驱动程序 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2024-03-20 - **Last Updated**: 2024-09-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: ST7735, MicroPython, ESP32 ## README # ST7735S ### 介绍 使用MicroPython编写的ST7735S显示驱动程序。 ### 软件架构 模块名称:st7735s
模块颜色常量:RED,GREEN,BLUE,WHITE,CYAN,YELLOW,PURPLE,GREY
模块显示模式常量:PART,NORMAL,SCROLL,IDLE
#### 1、 辅助函数: rgb565(R, G, B) #颜色生成函数
#### 2、 构造函数 st7735s.ST7735S(spi,*,dc,rst,cs,bl=None,width=128,height=160)
st7735s.deinit()
#### 3、 功能函数 1. ST7735S.clear(c=0)                       #用颜色c(默认黑色)填充缓存,并显示
2. ST7735S.backlight(duty)         #背光灯亮度调节
3. ST7735S.sleep( )                          #显示屏进入休眠
4. ST7735S.wakeup( )                       #显示屏被唤醒
5. ST7735S.rotate(angle)                 #顺时针旋转屏幕,参数为旋转度数,如0°、90°、180°、270°
6. ST7735S.setWindow(xs,ys,xe,ye)         #设置数据发送或图像绘制的目标窗口,局部绘图
7. ST7735S.setDisMode(mode,*p)           #设置部分\正常\滚动\空闲显示模式
8. ST7735S.setScrollStart(ys)                     #滚动模式下,设置滚动的开始线
9. ST7735S.show( )                                    #把ST7735S的内容全部发送到显存,全屏显示
10. ST7735S.showVPart(ys,ye)                    #刷新显示垂直部分区域
11. ST7735S.showImage(xs,ys,xe,ye,data:bytes) #把data  (如相机照片)直接发送到屏幕指定窗口显示
12. ST7735S.bufToBmp(bmpfile:str)            #把framebuf缓存上的图像保存为RGB565格式的bmp文件
#### 4、 绘图函数 1. ST7735S.fill(c)     #用指定的颜色填充整个ST7735S;
2. ST7735S.pixel(x, y [, c] )     #获取或设置像素的颜色;
3. ST7735S.hline(x, y, w, c)     #绘制水平直线;
4. ST7735S.vline(x, y, h, c)     #绘制垂直直线;
5. ST7735S.line(x1, y1, x2, y2, c)     #两点之间绘制线段,像素宽度为1;
6. ST7735S.rect(x, y, w, h, c [, f])     #绘制矩形,f参数决定是否填充;
7. ST7735S.ellipse(x, y, xr, yr, c[, f, m])     #绘制椭圆或圆, f决定填充,m确定象限;
8. ST7735S.poly(x, y, coords, c[, f])     #绘制任意多边形,f参数决定是否填充;
9. ST7735S.text(s, x, y [, c])     #绘制文本,仅支持8x8像素的英文字符;
10. ST7735S.scroll(xstep, ystep)     #将ST7735S的内容移动给定的向量;
11. ST7735S.blit(fbuf, x, y, key=-1, palette=None)     #在给定坐标处绘制另一个FrameBuffer。
12. ST7735S.drawText(text,x,y,fontDB,c,bc,alpha)      #从左上角(x,y)处开始绘制汉字或字母,bc为背景色
13. ST7735S.drawImage(imgw,imgh,img:bytes,format=RGB565,x=0,y=0)      #从(x,y)处开始绘制bytes类型图像
### 使用说明 ```python import st7735s as st from machine import SPI from random import randint import time,gbk def main(): #spi使用硬件通道1。根据实际情况,修改spi和lcd的连接引脚 try: font=gbk.font16x16() spi = SPI(1,baudrate=40000000) lcd=st.ST7735S(spi,dc=2,rst=0,cs=15,bl=12,width=128,height=160) lcd.backlight(200) lcd.rotate(0) #绘制中间滚动区12行文本 for i in range(20,140,10): t=f'{i} ' lcd.text(t*(lcd.width//8//len(t)),0,i,st.rgb565(randint(0,255),randint(0,255),randint(0,255))) #绘制顶部和底部固定区矩形和文字 lcd.rect(0,0,lcd.width,20,st.BLUE,1) lcd.rect(0,140,lcd.width,20,st.BLUE,1) lcd.drawText('顶部固定区TFA',10,2,font,st.YELLOW) lcd.drawText('底部固定区BFA',10,142,font,st.YELLOW) lcd.show() #滚动显示10秒 lcd.setDisMode(st.SCROLL,20,120,20) t,i=time.ticks_ms(),20 while time.ticks_diff(time.ticks_ms(),t)<10000: lcd.setScrollStart(i) i=i+1 if i<140 else 20 time.sleep_ms(30) lcd.setDisMode(st.NORMAL) finally: font.deinit() #关闭数据库和相关文件 lcd.deinit() #关闭背光的pwm输出 if __name__=='__main__': main() ```