QR码和PDF417 For STM8

2019-12-23 18:35发布

本帖最后由 linjunxiong 于 2014-10-29 22:42 编辑

    二维码,种类比较多,常见的有QR码和PDF417,比一维码可以存储的信息多了很多。很多应用还是可以应用到。
了解具体原理和历史可以维基下,
无标题.png (138 KB, 下载次数: 0) 下载附件 不同版本和纠错 2014-10-29 22:27 上传
STM8移植Qrduino输出任意版本和纠错级别.rar (116.26 KB, 下载次数: 145) 2014-10-29 22:38 上传 点击文件名下载附件
STM8移植Qrduino输出任意版本和纠错级别


PDF417

pdf417_enc  http://sourceforge.jp/projects/sfnet_pdf417encode/releases/

Zint Barcode Generator http://sourceforge.net/projects/zint/
这个在单片机上的参考就真的没能G到,索性直接找的PC端的移植下,整体的流程基本差不多,只是差最后一步整理把它打印出来,一直想把它弄出来,就是没那个动力,有兴趣的可以了解下。
STM8 移植PDF417_ENC.rar (835.78 KB, 下载次数: 113) 2014-10-29 22:40 上传 点击文件名下载附件
STM8 移植PDF417_ENC


代码些许乱,懒得去整理它了。。。多少懒


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
45条回答
XUEPENGBIN
1楼-- · 2019-12-26 10:48
zyw19987 发表于 2015-6-27 16:56
可以上你的测试工程吗?

主要是 15楼的 显示代码
这个是我这次修改的。其他的楼主都上传了。
windancerhxw
2楼-- · 2019-12-26 16:10
学习了,mark一下
桂电小手
3楼-- · 2019-12-26 17:31
XUEPENGBIN 发表于 2015-6-27 11:21
谢谢你的指导,现在终于可以正确显示了。

我移植了也是扫描不出来,但是我在qrencode.c 里并没有找到你蓝 {MOD}注释掉的两句话

QQ图片20150701191908.jpg (701.1 KB, 下载次数: 0)

下载附件

2015-7-1 19:19 上传


#include <string.h>
#include "qrencode.h"

extern unsigned char neccblk1;
extern unsigned char neccblk2;
extern unsigned char datablkw;
extern unsigned char eccblkwid;
extern unsigned char VERSION;
extern unsigned char ECCLEVEL;
extern unsigned char WD, WDB;

extern unsigned char rlens[46];
extern unsigned char framebase[];
extern unsigned char framask[];


//========================================================================
// Reed Solomon error correction
static unsigned modnn(unsigned x)
{
    while (x >= 255)
    {
        x -= 255;
        x = (x >> 8) + (x & 255);
    }
   
    return x;
}

#ifndef RTGENEXPLOG
static const unsigned char g0log[256]  = {
0xff,0x00,0x01,0x19,0x02,0x32,0x1a,0xc6,0x03,0xdf,0x33,0xee,0x1b,0x68,0xc7,0x4b,
0x04,0x64,0xe0,0x0e,0x34,0x8d,0xef,0x81,0x1c,0xc1,0x69,0xf8,0xc8,0x08,0x4c,0x71,
0x05,0x8a,0x65,0x2f,0xe1,0x24,0x0f,0x21,0x35,0x93,0x8e,0xda,0xf0,0x12,0x82,0x45,
0x1d,0xb5,0xc2,0x7d,0x6a,0x27,0xf9,0xb9,0xc9,0x9a,0x09,0x78,0x4d,0xe4,0x72,0xa6,
0x06,0xbf,0x8b,0x62,0x66,0xdd,0x30,0xfd,0xe2,0x98,0x25,0xb3,0x10,0x91,0x22,0x88,
0x36,0xd0,0x94,0xce,0x8f,0x96,0xdb,0xbd,0xf1,0xd2,0x13,0x5c,0x83,0x38,0x46,0x40,
0x1e,0x42,0xb6,0xa3,0xc3,0x48,0x7e,0x6e,0x6b,0x3a,0x28,0x54,0xfa,0x85,0xba,0x3d,
0xca,0x5e,0x9b,0x9f,0x0a,0x15,0x79,0x2b,0x4e,0xd4,0xe5,0xac,0x73,0xf3,0xa7,0x57,
0x07,0x70,0xc0,0xf7,0x8c,0x80,0x63,0x0d,0x67,0x4a,0xde,0xed,0x31,0xc5,0xfe,0x18,
0xe3,0xa5,0x99,0x77,0x26,0xb8,0xb4,0x7c,0x11,0x44,0x92,0xd9,0x23,0x20,0x89,0x2e,
0x37,0x3f,0xd1,0x5b,0x95,0xbc,0xcf,0xcd,0x90,0x87,0x97,0xb2,0xdc,0xfc,0xbe,0x61,
0xf2,0x56,0xd3,0xab,0x14,0x2a,0x5d,0x9e,0x84,0x3c,0x39,0x53,0x47,0x6d,0x41,0xa2,
0x1f,0x2d,0x43,0xd8,0xb7,0x7b,0xa4,0x76,0xc4,0x17,0x49,0xec,0x7f,0x0c,0x6f,0xf6,
0x6c,0xa1,0x3b,0x52,0x29,0x9d,0x55,0xaa,0xfb,0x60,0x86,0xb1,0xbb,0xcc,0x3e,0x5a,
0xcb,0x59,0x5f,0xb0,0x9c,0xa9,0xa0,0x51,0x0b,0xf5,0x16,0xeb,0x7a,0x75,0x2c,0xd7,
0x4f,0xae,0xd5,0xe9,0xe6,0xe7,0xad,0xe8,0x74,0xd6,0xf4,0xea,0xa8,0x50,0x58,0xaf,
};

static const unsigned char g0exp[256]  = {
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1d,0x3a,0x74,0xe8,0xcd,0x87,0x13,0x26,
0x4c,0x98,0x2d,0x5a,0xb4,0x75,0xea,0xc9,0x8f,0x03,0x06,0x0c,0x18,0x30,0x60,0xc0,
0x9d,0x27,0x4e,0x9c,0x25,0x4a,0x94,0x35,0x6a,0xd4,0xb5,0x77,0xee,0xc1,0x9f,0x23,
0x46,0x8c,0x05,0x0a,0x14,0x28,0x50,0xa0,0x5d,0xba,0x69,0xd2,0xb9,0x6f,0xde,0xa1,
0x5f,0xbe,0x61,0xc2,0x99,0x2f,0x5e,0xbc,0x65,0xca,0x89,0x0f,0x1e,0x3c,0x78,0xf0,
0xfd,0xe7,0xd3,0xbb,0x6b,0xd6,0xb1,0x7f,0xfe,0xe1,0xdf,0xa3,0x5b,0xb6,0x71,0xe2,
0xd9,0xaf,0x43,0x86,0x11,0x22,0x44,0x88,0x0d,0x1a,0x34,0x68,0xd0,0xbd,0x67,0xce,
0x81,0x1f,0x3e,0x7c,0xf8,0xed,0xc7,0x93,0x3b,0x76,0xec,0xc5,0x97,0x33,0x66,0xcc,
0x85,0x17,0x2e,0x5c,0xb8,0x6d,0xda,0xa9,0x4f,0x9e,0x21,0x42,0x84,0x15,0x2a,0x54,
0xa8,0x4d,0x9a,0x29,0x52,0xa4,0x55,0xaa,0x49,0x92,0x39,0x72,0xe4,0xd5,0xb7,0x73,
0xe6,0xd1,0xbf,0x63,0xc6,0x91,0x3f,0x7e,0xfc,0xe5,0xd7,0xb3,0x7b,0xf6,0xf1,0xff,
0xe3,0xdb,0xab,0x4b,0x96,0x31,0x62,0xc4,0x95,0x37,0x6e,0xdc,0xa5,0x57,0xae,0x41,
0x82,0x19,0x32,0x64,0xc8,0x8d,0x07,0x0e,0x1c,0x38,0x70,0xe0,0xdd,0xa7,0x53,0xa6,
0x51,0xa2,0x59,0xb2,0x79,0xf2,0xf9,0xef,0xc3,0x9b,0x2b,0x56,0xac,0x45,0x8a,0x09,
0x12,0x24,0x48,0x90,0x3d,0x7a,0xf4,0xf5,0xf7,0xf3,0xfb,0xeb,0xcb,0x8b,0x0b,0x16,
0x2c,0x58,0xb0,0x7d,0xfa,0xe9,0xcf,0x83,0x1b,0x36,0x6c,0xd8,0xad,0x47,0x8e,0x00,
};
#define glog(x) __LPM(&g0log[x])
#define gexp(x) __LPM(&g0exp[x])
ysu533
4楼-- · 2019-12-26 18:14
桂电小手 发表于 2015-7-1 19:20
我移植了也是扫描不出来,但是我在qrencode.c 里并没有找到你蓝 {MOD}注释掉的两句话

不知道这个二维码用LED点阵屏(静态扫描), 用64*64点的点阵屏, 不知道可行不. 想做个只显示二维码的单 {MOD}点阵屏, 就是不知道可行不.
XUEPENGBIN
5楼-- · 2019-12-26 18:59
 精彩回答 2  元偷偷看……
zuoyi001
6楼-- · 2019-12-26 23:37
QRcode 生成 标记

一周热门 更多>