分享

嵌入式平台 STM32 libqrencode 移植 二维码生成

 goodwangLib 2018-03-16


实验环境

硬件:STM32板 (STM32F207 )

     LCD12864 模块 (ST7565)

USB转串口模块 TTL

     ST-Link V2 调试

软件:MDK Keil v5.12

     PortHelper.exe 串口调试助手

实验目的

     在嵌入式平台上生成QR Code,LCD显示

实验步骤:


  1. 建立STM32工程,包括LCD显示或串口打印,使用MicroLIB

  1. https://github.com/fukuchi/libqrencode 下载源码 添加主文件夹下的 .h .c文件到工程,qrenc.c 不要添加
  2. 对所有.C文件做如下修改

    #if HAVE_CONFIG_H

    # include 'config.h'

    #endif

    改为

    # include 'config.h'

    添加 config.h文件,添加如下信息

/* Define to 1 if you have the `strdup' function. */

#define HAVE_STRDUP 0

 

/* Major version number */

#define MAJOR_VERSION 3

/* Micro version number */

#define MICRO_VERSION 0

/* Minor version number */

#define MINOR_VERSION 9

 

/* Define to the version of this package. */

#define PACKAGE_VERSION '3.9.0'

 

/* Version number of package */

//#define VERSION '3.9.0'

#define LIBQRENCODE_VERSION '3.9.0'

 

/* Define to empty if `const' does not conform to ANSI C. */

/* #undef const */

 

/* Define to `__inline__' or `__inline' if that's what the C compiler

calls it, or to nothing if 'inline' is not supported under any name. */

#ifndef __cplusplus

/* #undef inline */

#endif

 

/* Define to 'static' if no test programs will be compiled. */

#define __STATIC

#define WITH_TESTS 1

  1. 在Main.c中添加测试代码

#include 'qrencode.h'

#include 'qrspec.h'

#include 'mqrspec.h'

#include 'bitstream.h'

#include 'qrinput.h'

#include 'rsecc.h'

#include 'split.h'

#include 'mask.h'

#include 'mmask.h'

 

QRcode*qrcode; //最后结果

 

qrcode= QRcode_encodeString('sissi',2, QR_ECLEVEL_L, QR_MODE_8,0);

printf('====version=%d========\r\n',qrcode->version);

for(y=0;yqrcode->width;y++)

{

for(x=0;xqrcode->width;x++)

{

if(qrcode->data[y*qrcode->width+x]&0x01)

{

printf('#');

// LCM_SetPixel(x,y,1);

}

else

{

printf(' ');

// LCM_SetPixel(x,y,0);

}

}

printf('\r\n');

}

printf('\r\n');

 

//DISPLAY_RENCODE_TO_TFT(0,0,2);

QRcode_free(qrcode);

 

  1. 在startup_stm32f2xx.s中修改堆栈,太小了跑步起来qrcode->version都不对。

    改不了先去掉文件的只读权限

     

 

 

  1. 串口打印结果基本可以基本看到二维码图形

  1. QRcode结构体介绍

     

参考:

http:///works/qrencode/

https://github.com/fukuchi/libqrencode

工程:

http://download.csdn.net/detail/nolnew/9376151


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多