基于MCU的二维码生成及在墨水屏上进行二维码显示

        墨水屏相比其他LCD屏幕在低功耗方面有着显著优势,特别适合纽扣电池甚至是无电池的nfc价签的应用场合。价签经常要显示二维码,因此网上找了下找到了一个合适的适合在mcu上进行使用的二维码生成库。

        GitHub - ricmoo/QRCode: QR code generation library in C, optimized for low-power devices, such as Arduino.

        这个qrcode很适合在mcu上,就一个.c和.h文件。

        使用流程:

    // Create the QR code 按照所需字符串生成对应的二维码
    QRCode qrcode;
    uint8_t qrcodeData[qrcode_getBufferSize(3)];
    qrcode_initText(&qrcode, qrcodeData, 3, 0, "https://blog.csdn.net/hydfxy2018");
    printf( "qrcode.size:%d\r\n", qrcode.size);

qrcode_getBufferSize(3) 这里的参数3代表使用qr version3,不同版本对应生成的二维码分辨率不一样。

Version

SizeError CorrectionMode
NumericAlphanumericByte
121 x 21LOW412517
MEDIUM342014
QUARTILE271611
HIGH17107
225 x 25LOW774732
MEDIUM633826
QUARTILE482920
HIGH342014
329 x 29LOW1277753
MEDIUM1016142
QUARTILE774732
HIGH583524

这部分在qrcode的仓库里面有进行说明,依据如上可以选择合适的版本以及相应的ecc设定。

生成的二维码显示到墨水屏上

for (uint8_t y = 0; y < qrcode.size; y++) {
		for (uint8_t x = 0; x < qrcode.size; x++) {
			if (qrcode_getModule(&qrcode, x, y)) {
				Paint_DrawFillRect(0 + x * 3,
						150 +  y * 3, 3, 3);
			} 
		}
	}

原理是依据二维码code在屏幕上进行打点显示,这里通过点的大小也可以进行实际二维码大小进行调整,如如上按每个点3像素进行设定。

显示效果如下:

 

完整代码参考如下:

GitHub - iot-lorawan/MCU_QRCode_LCD: Ink-Display with QRCode in MCU

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MCU(Microcontroller Unit)信息可以跟二维码进行关联和储存。首先,我们需要了解MCU二维码的基本原理。 MCU是一种集成了处理器、存储器和输入/输出功能的微型计算机系统。它可以用于控制和管理各种设备和系统,例如家用电器、汽车电子、电脑硬件等等。MCU可以读取、处理和发送各种不同类型的信息。 二维码是一种能以快速、高密度的方式存储信息的矩阵形式条码。通过手机相机或扫码器等设备,可以扫描二维码并读取储存在其中的信息。二维码通常用于实现快速、便捷的信息传递和交流。 将MCU信息与二维码关联起来可以通过以下方式实现: 1. 编码和解码:MCU可以读取各种不同的信息,包括文本、数字、图像等。将MCU读取到的信息进行编码,通过算法转化为适合二维码储存的格式。同样地,使用相应的解码算法,二维码中的信息可以被MCU读取并进行处理。 2. 传输和接收:MCU可以通过相关的硬件接口或通信协议将二维码的信息传输给其他设备或系统。例如,MCU通过串口或无线通信模块把解码后的二维码信息发送给其他设备进行处理或显示。 3. 存储和加载:MCU可以通过Flash存储器等内部或外部存储设备储存二维码相关的信息。将解码后的二维码信息保存在指定的存储位置,以便随时加载和读取。 总结而言,MCU可以通过编码、解码、传输、接收、存储和加载等方式将信息与二维码进行关联。这样,MCU就能够实现二维码的读取、传输和处理,从而实现更加便捷、高效的信息交流和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值