物联网开发笔记(92)- 使用Micropython开发ESP32开发板之UART串口屏JC028-QVGA-BSCZ-01-V01显示

一、目的

        这一节我们学习如何使用ESP32开发板,通过UART串口来控制屏幕JC028-QVGA-BSCZ-01-V01,屏幕固件版本:FW028_HD_SER_BSCZ_GD_V01。文末有购买地址。同时卖家会赠送一个USB转TTL的工具。宝贝图片如下:

 商家赠送的USB转TTL模块

 

二、环境

        ESP32(固件:esp32-20220618-v1.19.1.bin) + Thonny(V4.0.1) + UART串口屏JC028-QVGA-BSCZ-01-V01模块 + USB转TTL线 + 几根杜邦线 + Win10 64位商业版

接线方法:

三、串口屏设置上电自动加载指令(开机LOGO)

下载工具和资料,可以从卖家的详情页下载,也可以从我的网盘里下载:

链接: https://pan.baidu.com/s/1PFFLYBlCLAi0oDsGBJQOXw 提取码: h2jb 复制这段内容后打开百度网盘手机App,操作更方便哦

我们把USB转TTL线,分别连接电脑和屏幕:

然后准备一张和屏幕分辨率大小一样像素的图片,此处屏幕的位320*240。大家可以使用Windows系统自带画板Paint进行图片大小的设置。

步骤:1,打开一个图片。2,设置大小为320*240。3,另存为JPEG格式

w8z1lhUAYBwVAAAAABJRU5ErkJggg==wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

我们打开SunStudio.exe,连接上串口,进行指令的烧录。

 

在数据发送区,分别发送如下指令:

 

 

 

 

 

 

 

 图片LOGO显示效果

 

四、演示代码

from machine import Pin,UART
import time

def main():
    
    #创建串口对象
    uart = UART(1, baudrate=115200, tx=33, rx=32)  # 这里设置为115200,不要设为9600,否则不通讯
    
    #设置波特率
    uart.write("BPS(115200);\r\n")  # 9600 or 115200
    time.sleep_ms(400)  # >300ms
    time.sleep(2) # 等待2秒为了查看效果
    
    #写指令CLR()0~63清屏或填充
    uart.write("CLR(1);\r\n")
    time.sleep_ms(150)  # >120ms
    time.sleep(2)
    
    #获取屏幕固件信息
    uart.write("VER;\r\n")
    time.sleep_ms(50)  # >40ms
    time.sleep(2)
    
    #调节背光颜色
    uart.write("BL(188);\r\n")  # 0-255,其中0为全亮显示,255为关闭显示
    time.sleep_ms(20)  # >15ms
    time.sleep(2)
    
    #清屏
    uart.write("CLR(2);\r\n")  # 0-255
    time.sleep_ms(150)  # >120ms
    time.sleep(2)
    
    #屏幕方向转换
    uart.write("DIR(1);\r\n")  # 0-3分别为0度90度270度180度
    time.sleep_ms(20)  # >15ms
    time.sleep(2)
    
    #Flash的图片显示
    uart.write("FSIMG(2097152,0,0,320,240,0);\r\n")
    time.sleep_ms(300)  # >270ms
    time.sleep(2)
    
    #显示48 点高的字符
    uart.write("SBC(15);DC48(120,120,'你好',1,0);\r\n")  # 
    time.sleep_ms(60)  # >50ms
    time.sleep(2)
    
    '''
    #画点
    uart.write("PS(1,1,3);\r\n")
    time.sleep_ms(30)  # >20ms
    time.sleep(2)
    
    #画线
    uart.write("PL(0,0,90,90,1);\r\n")
    time.sleep_ms(40)  # >30ms
    time.sleep(2)
    
    #画框
    uart.write("BOX(0,0,100,100,1);\r\n")
    time.sleep_ms(50)  # >40ms
    time.sleep(2)
    
    #画填充框
    uart.write("BOXF(0,0,100,100,1);\r\n")
    time.sleep_ms(50)  # >40ms
    time.sleep(2)
    
    #画圆
    uart.write("CIR(10,10,5,2);\r\n")
    time.sleep_ms(40)  # >35ms
    time.sleep(2)
    
    #画填充圆
    uart.write("CIRF(100,100,5,4);\r\n")
    time.sleep_ms(40)  # >35ms
    time.sleep(2)
    
    #显示48 点高的字符
    uart.write("SBC(15);DC48(120,120,'Hello',1,0);\r\n")
    time.sleep_ms(60)  # >50ms
    time.sleep(2)
    
    #设置背景色需要和DCV或者DC指令结合一起使用
#     uart.write("SBC(5);\r\n")
#     time.sleep_ms(20)  # >15ms
#     time.sleep(2)
    
    #显示32点高的字符带底色
    uart.write("SBC(15);DCV32(30,128,'China',1);\r\n")
    time.sleep_ms(50)  # >40ms
    time.sleep(2)
    
    #显示按钮
    uart.write("BTN(120,80,48,16,'Button',2,4,5,6);\r\n")
    time.sleep_ms(50)  # >42ms
    time.sleep(2)
    
    #模式切换
    uart.write("MODE_CFG(0);\r\n")
    time.sleep_ms(250)  # >210ms
    time.sleep(2)
    
    #上电启动设置
    uart.write("BOOT_START(123);CLR(15);DELAYMS(400);CLR(0);DELAYMS(400);BOX(0,0,175,219,1);DELAYMS(600);CLR(0);DELAYMS(400);FSIMG(2097152,0,0,86,100,0);MODE_CFG(1);\r\n")
    time.sleep(2)
    '''
    while True:
        for  i in range(100):
            #显示24x24字体需要配合清屏函数使用
            uart.write("CLR(2);\r\n")  # 0-255
            time.sleep_ms(150)  # >120ms
            uart.write("DC24(0,0,'%.2d',1)\r\n"%i),time.sleep_ms(45)
            #显示24x24字体不需要配合清屏函数
            #uart.write("DCV24(0,25,'%.2d',2)\r\n"%i),time.sleep_ms(45)
    
if __name__ == "__main__":
    main()
    

五、代码演示效果

内容太多,此处仅为部分演示效果。

 六、中文显示疑问

这个屏幕是自带中文字库的,可是我使用Thonny去显示中文,屏幕总会显示乱码,有知道的童鞋,给我留言哈,谢谢!

 但是使用SunStdio是可以的!屏幕可以正常显示中文。

 

 

七、屏幕购买

某宝链接如下:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.5b662e8dzEe6Mn&id=678139185276&_u=hp01rch08a3https://item.taobao.com/item.htm?spm=a1z09.2.0.0.5b662e8dzEe6Mn&id=678139185276&_u=hp01rch08a3

PS: 商家详情页展示的图片是这个,但是我收到的宝贝有点不一致。我收到的宝贝图片,具体请看文章开始处。

模块资料下载:http://m6z.cn/5AKV5Y

开发工具下载:http://m6z.cn/5tdna1

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔都飘雪

您的1毛奖励是我创作的源源动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值