同步操作将从 Walkline/MicroPython QRCode CModule 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
生成并显示指定内容的二维码
将ports/esp32/
下的文件复制到MicroPython
项目对应位置
修改ports/esp32/CMakeLists.txt
文件,增加如下内容:
set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/qrcode)
修改ports/esp32/main/CMakeLists.txt
文件:
# 在 set(MICROPY_SOURCE_PORT 下边增加
${PROJECT_DIR}/modqrcode.c
# 在 set(IDF_COMPONENTS 下边增加
qrcode
编译固件即可增加qrcode
模块
生成二维码,并在控制台打印输出
>>> import qrcode
>>> _qrcode = qrcode.QRCODE()
>>> _qrcode.ecc_level(qrcode.ECC_HIGH)
>>> _qrcode.generate('https://gitee.com/walkline/micropython-qrcode-cmodule')
I (66945) QRCODE_MODULE: Encoding below text with ECC LVL 3 & QR Code Version 40
I (66945) QRCODE_MODULE: https://gitee.com/walkline/micropython-qrcode-cmodule
>>> print(_qrcode)
<QRCODE version=6, max_version=40 length=41, ecc_level=3, buffer_size=210>
>>> _qrcode.print()
>>>
# 使用 ab 工具烧录固件
$ ab --flash
# 使用 ab 工具上传相关文件
$ ab
# 使用 ab 工具打开串口
$ ab --repl
# 使用快捷键 ctrl+r,并选择以 demo_ 开头的文件
# 已添加测试了基于 st7789 驱动的 tft 屏幕的测试文件
qrcode.QRCODE([ecc_level, max_version])
无
ecc_level
:容错等级(默认值ECC_MED
),详情见模块常量列表
max_version
:可生成二维码的最大版本号(默认值VERSION_MAX
),详情见模块常量列表
ecc_level([level])
:获取或设置ecc_level
version()
:获取已生成二维码的版本号
版本号计算方法:
(_qrcode.length() - 17) // 4
length()
:获取已生成二维码的边长
generate(text)
:使用指定字符串生成二维码
print()
:在控制台打印二维码预览图
raw_data()
:获取二维码点阵元组数据,形如((1, 0, ...), (0, 1, ...), ...)
buffer_data(byetarray)
:传入一个byetarray
数组,以MONO_HLSB
格式填充二维码数据
bytearray
初始化长度计算方法:
(_qrcode.length() - 1) // 8 + 1) * _qrcode.length()
ECC_LOW
:7%
容错率,代表二维码内容缺失7%
后仍可被正确识别,容错率与数据长度成正比,下同
ECC_MED
:15%
容错率
ECC_QUART
:25%
容错率
ECC_HIGH
:30%
容错率
VERSION_MIN
:二维码支持的最低版本,1
VERSION_MAX
:二维码支持的最高版本,40
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。