代码拉取完成,页面将自动刷新
同步操作将从 Walkline/MicroPython QRCode CModule 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""
The MIT License (MIT)
Copyright © 2022 Walkline Wang (https://walkline.wang)
Gitee: https://gitee.com/walkline/micropython-qrcode-cmodule
"""
from machine import SPI, Pin
import utime
import st7789
import qrcode
from config import Config
text = 'https://gitee.com/walkline/micropython-qrcode-cmodule'
def timed_function(f, *args, **kwargs):
myname = str(f).split(' ')[1]
def new_func(*args, **kwargs):
t = utime.ticks_us()
result = f(*args, **kwargs)
delta = utime.ticks_diff(utime.ticks_us(), t)
print('Function {} | Time = {:6.3f}ms'.format(myname, delta/1000))
return result
return new_func
@timed_function
def initialize_display():
spi = SPI(
1,
baudrate=40000000,
polarity=1,
sck=Pin(Config.Pins.SCL),
mosi=Pin(Config.Pins.SDA)
)
display = st7789.ST7789(
spi, 240, 240,
reset=Pin(Config.Pins.RST, Pin.OUT),
dc=Pin(Config.Pins.DC, Pin.OUT)
)
display.init()
return display
@timed_function
def display_qrcode_origin():
global _display, _qrcode
if _qrcode.generate(text):
_qrcode.print()
print(_qrcode)
buffer_array = bytearray(_qrcode.length()**2 * 2)
qrcodebuffer = bytearray(((_qrcode.length() - 1) // 8 + 1) * _qrcode.length())
_qrcode.buffer_data(qrcodebuffer)
_display.map_bitarray_to_rgb565(
qrcodebuffer,
buffer_array,
_qrcode.length(),
st7789.WHITE, st7789.BLACK
)
center_x = (_display.width() - _qrcode.length()) // 2
center_y = (_display.height() - _qrcode.length()) // 2
_display.blit_buffer(
buffer_array,
center_x, center_y,
_qrcode.length(),
_qrcode.length()
)
@timed_function
def display_qrcode_scales():
global _display
if _qrcode.generate(text):
_qrcode.print()
print(_qrcode)
scales = 5
center_x = (_display.width() - _qrcode.length() * scales) // 2
center_y = (_display.height() - _qrcode.length() * scales) // 2
for y, row in enumerate(_qrcode.raw_data()):
for x, value in enumerate(row):
if value:
_display.fill_rect(x * scales + center_x, y * scales + center_y, scales, scales, st7789.WHITE)
if __name__ == '__main__':
_display = initialize_display()
_qrcode = qrcode.QRCODE()
_qrcode.ecc_level(3)
display_qrcode_scales()
# display_qrcode_origin()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。