3.34 haas506 2.0开发教程-example -TFT显示自动生成的二维码

最新案例教程点击下方链接跳转,CSDN已停止更新

点击跳转HaaS506官方最新案例







应用场景

二维码在各个领域中的应用越来越广泛,其中一些主要应用场景包括:
电子商务:通过二维码,用户可以轻松链接到商家的网站,浏览商品信息,完成购买流程。
票务系统:许多电影院、音乐厅等场所使用二维码作为电子门票,从而方便用户购买、入场等环节。
广告推广:在营销活动中,二维码可以用于引导用户进入推广页面或者下载APP等操作。
教育培训:老师可以在教材或者课件中加入二维码,学生扫描后可以快速跳转到相关的视频、PPT等资料。
公共服务:政府机构使用二维码作为身份证件,医疗机构使用二维码查询个人就医信息等。

随着技术的不断提升和应用场景的增多,二维码的应用领域还将进一步扩大,并且未来将成为未来的主要趋势。

案例说明

  • 案例使用MicroPython的qrcode模块,可以直接将文本内容转化成二维码。
  • 通过SPI串口,将二维码显示在TFT屏幕上。
    在这里插入图片描述

1.硬件

器材数量
HaaS506开发板1
128x160TFT屏幕1
杜邦线若干

2.连线图

在这里插入图片描述

代码

修改下列数据调整二维码

#---------------------------------------------------------------------
scale_rate = 3  # 放大倍数
x=14        #起始x坐标
y=20        #起始y坐标
content='https://www.yuque.com/haas506/wiki'      #二维码内容
#---------------------------------------------------------------------

源码链接TFT显示二维码

在这里插入图片描述

main.py

from st7735s import ST7889_Image
import utime as time
from qrcode import QRCode

tft=ST7889_Image()
qr = QRCode(border=2)

#---------------------------------------------------------------------
scale_rate = 3  # 放大倍数
x=14        #起始x坐标
y=20        #起始y坐标
content='https://www.yuque.com/haas506/wiki'      #二维码内容
#---------------------------------------------------------------------
qr.add_data(content) 
matrix = qr.get_matrix()
tft.tft_begin()
row_len = len(matrix)
col_len = len(matrix[0])

print("row=%d, col=%d" % (row_len, col_len))

# 准备黑色,白色数据
buffer_black = bytearray(scale_rate * scale_rate * 2)  # 每个点pixel有2个字节表示颜色
buffer_white = bytearray(scale_rate * scale_rate * 2)  # 每个点pixel有2个字节表示颜色
color_black = 0x0000
color_black_byte1 = color_black & 0xff00 >> 8
color_black_byte2 = color_black & 0xff
color_white = 0xffff
color_white_byte1 = color_white & 0xff00 >> 8
color_white_byte2 = color_white & 0xff

for i in range(0, scale_rate * scale_rate * 2, 2):
    buffer_black[i] = color_black_byte1
    buffer_black[i + 1] = color_black_byte2
    buffer_white[i] = color_white_byte1
    buffer_white[i + 1] = color_white_byte2

# 循环次数不增加,只增加每次发送的数据量,每次发送scale_rate X scale_rate个点的信息
for row in range(row_len):
    for col in range(col_len):
        if matrix[row][col]:
            tft.show_img(x+(row * scale_rate), y+(col * scale_rate), x+(row * scale_rate + scale_rate - 1), y+(col * scale_rate + scale_rate - 1), buffer_black)
        else:
            tft.show_img(x+(row * scale_rate), y+(col * scale_rate), x+(row * scale_rate + scale_rate - 1), y+(col * scale_rate + scale_rate - 1), buffer_white)
        col += 1

    row += 1

#英文显示
tft.tft_showString(44,130,"haas506",0xffff)

board.json

{
  "name": "haas506",
  "version": "1.0.0",
  "io": {
    "cs": {
      "type": "GPIO",
      "port": 15,
      "dir": "output",
      "pull": "pullup"
    },
    "dc":{
      "type":"GPIO",
      "port": 3,
      "dir": "output",
      "pull":"pullup"
    },  
    "rst":{
      "type":"GPIO",
      "port": 20,
      "dir": "output",
      "pull":"pullup"
    },       
  
    "ST7735S": {
      "type": "SPI",
      "port": 0,
      "mode": "master",
      "freq": 2000000
    }
  },
  "debugLevel": "ERROR",
  "repl": "enable",
  "replPort": 0
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值