• 3.16 haas506 2.0开发教程-example-JC035串口屏


    JC350串口屏

    案例使用的是3.5寸(JC035)集成串口屏,通过TTL串口进行连接.以下是JC350串口屏粗略介绍,详细信息自行翻阅资料.

    1.硬件说明

    • 集成屏支持UART串行口(TX和RX两根线),其中TX为主控的数据发送端,RX为主 控的数据接收端,因此单片机和集成屏的连接只需要4根线连接即可.
    • 集成屏的TX和客户主机的TX连接,集成屏的RX和客户主机的RX连接,不需要 交叉连接。
      在这里插入图片描述
    • 集成串口屏默认为5V供电,如果客户主机系统只能提供2.8~3.3V供电电压的话, 需修改背面PCB的跳线电阻。

    2.软件说明

    • 模块的显存和屏幕的分辨率是一一对应,如JC024模块的 显存为:240 * 320 * 2=153600字节,其中的2表示一个显存单元占2个字节(即16位)
    • 集成串口屏上电后自动完成各个功能部件的初始化(LCD、FLASH),因此,主机需 要等待1S左右,确保模块内部初始正常后才能够给它送指令,因此上电流程必须满足如下 的条件:
      在这里插入图片描述
    • 串口屏通过发送特定指令完成相应功能,使用简单.例如需要清除屏幕内容只需要通过TTL串口向屏幕发送CLR©即可,c表示清屏使用的背景颜色.
      在这里插入图片描述- 模块允许串口一次性最多发送24条指令,这样可以大大提高编程的效率,但一定要注意 指令的最后一定也要以\r\n为结束符,发送后的等待时间为最后一条指令的等待时间。

    3.调试软件

    JC035串口屏有自带的辅助测试软件,可以用来发送指令,处理图片.
    在这里插入图片描述

    实现

    案例说明

    • 本案例简单模拟自动售货机购买商品界面流程 , 主要介绍串口屏的使用方法.
    • 案例代码流程:
      • 开机进入商品选择界面
      • 按下左键切换商品,
      • 按下右键进入支付界面,再次点击右键确认支付,按下左键取消支付

    1. 图片编辑

    使用开发工具将需要的图片素材下载到集成串口屏中.

    • 先将需要的素材像素处理成合适大小,案例使用的屏幕大小为480x320,图片像素最大为479*319.

    • 使用串口将电脑连接上集成串口屏,打开开发工具,打开 [连接] 打开对应串口
      在这里插入图片描述

    • 打开 [工具] → [图片编辑],按下图顺序将所需素材合并生成一个bin文件.
      在这里插入图片描述

    • 发送bin文件,等待写入完成
      在这里插入图片描述
      在这里插入图片描述

    • 查看bin档,可以看到每张图片的开始地址和像素大小(发送指令需要用到开始地址)
      在这里插入图片描述

    2. 开发板测试

    将集成串口屏连接开发板,烧写程序

    案例连线

    在这里插入图片描述

    代码

    如果要显示中文代码烧录时选择GB2312编码
    在这里插入图片描述

    mian.py

    # coding=utf-8
    # This is a sample Python script.
    import utime
    from driver import UART
    from driver import GPIO
    
    #按键实例化
    key1=GPIO(10,10)
    key2=GPIO(10,10)
    key1.open("key1")
    key2.open("key2")
    
    #饮料属性设置
    beverages = [2402754,2482754,2562754,2642754]
    QR_code = ['雪碧','可乐','冰红茶','绿茶']
    price = ['30元','40元','35元','60元']
    
    #左键设置
    i = len(beverages)
    flag1 = 0
    def key1_callback(args):
        global flag1,n,payment,flag2
        flag1 +=1
        n = flag1%i 
        #一次性发送指令 清屏,屏幕方向,二维码,价格按钮,商品图片
        UART_send("CLR(0);DIR(1);QRCODE(40,60,%s,200,2);BTN(90,230,64,32,%s,0,0,4,0);FSIMG(%d,240,60,200,200,0);\r\n"%(QR_code[n],price[n],beverages[n]))
        payment = True
        flag2 = False
        utime.sleep_ms(100)
        key1.disableIrq()
        key1.clearIrq()
    
    #右键设置
    flag2 = False
    payment = True
    def key2_callback(args):
        global n,flag2,payment
        if payment:
            if flag2:
                UART_send("CLR(0);DIR(1);BTN(160,100,64,32,'支付成功',0,0,3,0);\r\n")
                flag2 = False
                utime.sleep(1)
                UART_send("DIR(1);FSIMG(2097152,0,0,479,319,0);BTN(100,30,64,32,'请按左键选择商品',0,0,2,15);\r\n")#开机logo
                # UART_send("CLR(15);DIR(1);BTN(100,100,64,32,'请按左键选择商品',0,0,3,15);\r\n")
                payment = False
            else:
                UART_send("CLR(0);DIR(1);BTN(60,100,64,32,'请确认是否支付%s?',0,0,4,0);BTN(400,270,64,32,'是',0,0,1,0);BTN(40,270,64,32,'否',0,0,2,0);\r\n"%price[n])
                flag2 = True
        utime.sleep(1)
        key2.disableIrq()
        key2.clearIrq()
    
    
    def UART_send(data):
        writeBuf0=bytearray(data)
        uart0.write(writeBuf0)
    
    if __name__ == '__main__':
        uart0=UART()
        uart0.open("serial1")
        utime.sleep(1)
        writeBuf0=bytearray("DIR(1);CLR(0);\r\n")
        uart0.write(writeBuf0)
        utime.sleep_ms(10)
        #开机选择商品界面
        UART_send("DIR(1);FSIMG(2097152,0,0,479,319,0);BTN(100,30,64,32,'请按左键选择商品',0,0,2,15);\r\n")
        utime.sleep_ms(1000)
    
        key1.enableIrq(key1_callback)
        key2.enableIrq(key2_callback) 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    board.json

    {
        "name": "haas506",
       "version": "2.0.0",
       "io": {
         "key1": {
          "type": "GPIO",
          "port": 20,
          "dir": "irq",
          "pull": "pullup",
          "intMode":"rising"
          },
         "key2": {
          "type": "GPIO",
          "port": 18,
          "dir": "irq",
          "pull": "pullup",
          "intMode":"rising"
          },
         "serial1":{
           "type":"UART",
           "port":0,
           "dataWidth":8,
           "baudRate":115200,
           "stopBits":1,
           "flowControl":"disable",
           "parity":"none"
         },
         "serial2":{
           "type":"UART",
           "port":1,
           "dataWidth":8,
           "baudRate":115200,
           "stopBits":1,
           "flowControl":"disable",
           "parity":"none"
         },
         "serial3":{
           "type":"UART",
           "port":2,
           "dataWidth":8,
           "baudRate":115200,
           "stopBits":1,
           "flowControl":"disable",
           "parity":"none"
         }
       },
       "debugLevel": "ERROR",
       "repl":"enable",
       "replPort":2
       }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    3. 测试结果

    • 开机界面显示请添加图片描述
    • 按下左键可以进行商品切换请添加图片描述
      请添加图片描述
      按下右键进入支付界面请添加图片描述
      请添加图片描述
  • 相关阅读:
    基于空间金字塔网络的光流估计
    多多练习,扎实基本功
    Python flask使用ajax上传文件
    ssh远程安装teamviewer与正在连接...问题解决方法
    GBase 8s ALTER FRAGMENT ON INDEX语句的示例
    Matlab绘制散点的95%置信区间图
    Oracle12c(12.2) 安装手顺(日文版)
    php源码zend_do_begin_namespace函数详解
    java-net-php-python-springboot家政服务平台计算机毕业设计程序
    跟着腾讯T4学架构:微服务+MySQL+Nginx+Redis+容器化+虚拟机
  • 原文地址:https://blog.csdn.net/w_hizyf_m/article/details/126504466