ESP8266 生成二维码

本文主要在上一篇显示驱动的基础上完成:https://blog.csdn.net/qq_33746993/article/details/79844659

二维码生成主要移植了libqrcode库来实现,二维码生成后再显示屏上打印出来。

        环境准备:libqrcode (下载地址:https://github.com/fukuchi/libqrencode

        使用git命令克隆libqrcode库,然后将该文件夹(不包含子文件夹)下的.c和.h文件整理到一个文件夹qrencode中放在esp-open-rtos/extras文件夹下,这些就是要用到的生成二维码的文件,然后仿照esp-open-rtos/extras下的其他文件夹创建component.mk文件如下:

# Component makefile for extras/qrencode

INC_DIRS += $(ROOT)extras/qrencode

# args for passing into compile rule generation
extras/qrencode_INC_DIR =  $(ROOT)extras/qrencode
extras/qrencode_SRC_DIR =  $(ROOT)extras/qrencode

$(eval $(call component_compile_rules,extras/qrencode))

在主程序中包含“qrencode.h”,创建二维码使用如下函数:

qrcode= QRcode_encodeString(“1234567890”,2,QR_ECLEVEL_L, QR_MODE_8,0);

创建的二维码保存在qrcode中,类型为:QRcode *类型

然后将编写打印函数将二维码打印在显示屏如下:

void disp_qrcode(uint8_t xs,uint8_t ys, uint8_t p)
{
    int x,y,i,j;
    for(y=0;y<qrcode->width;y++)
    {
        for(x=0;x<qrcode->width;x++)  
        {
            if(qrcode->data[y*qrcode->width+x]&0x01)  
            {
                LCD_Fill(xs+x*p,ys+y*p,xs+x*p+p,ys+y*p+p,0x00ff);          
            }
        }
    }
}
其中参数xs,ys为显示的起始坐标,p为每个显示点的大小即以边长为p的正方形代表一个显示点。
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值