目录
学习目标
成果展示
代码
总结
学习目标
本次就是使用上节课学的东西来显示一个二维码,比较简单,就不赘述。
成果展示
代码
代码语言:javascript复制from uQR import QRCode
from machine import Pin, SPI
import st7789
tft = st7789.ST7889_Image(SPI(2, 80000000), dc=Pin(2), cs=Pin(5), rst=Pin(15))
tft.fill(st7789.color565(255, 255, 255)) # 背景设置为白色
qr = QRCode(border=2)
qr.add_data('Hello,World!') # 这里是要生成的二维码,被扫码之后的得到的内容
matrix = qr.get_matrix()
row_len = len(matrix)
col_len = len(matrix[0])
# 放大倍数
# 默认情况下输出的二维码太小,可以按照你实际屏幕的大小进行缩放,当前我的240x240屏幕缩放8倍正合适
scale_rate = 8
buffer_black = bytearray(scale_rate * scale_rate * 2) # 每个点pixel有2个字节表示颜色
color_black = st7789.color565(0, 0, 0)
color_black_byte1 = color_black & 0xff00 >> 8
color_black_byte2 = color_black & 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
# 循环次数不增加,只增加每次发送的数据量,每次发送scale_rate X scale_rate个点的信息
for row in range(row_len):
for col in range(col_len):
if matrix[row][col]:
# tft.pixel(row, col, st7789_itprojects.color565(0, 0, 0))
tft.show_img(row * scale_rate, col * scale_rate, row * scale_rate scale_rate - 1, col * scale_rate scale_rate - 1, buffer_black)
col = 1
row = 1
总结
就是调库,没什么难的,就是后面优化程序有点意思。