资源简介
在正点原子开发板的基础上移植的二维码例子程序,在使用的时候注意栈的大小,希望对你有帮助。
代码片段和文件信息
/*
* qrencode - QR Code encoder
*
* Binary sequence class.
* Copyright (C) 2006-2011 Kentaro Fukuchi
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License or any later version.
*
* This library is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not write to the Free Software
* Foundation Inc. 51 Franklin St Fifth Floor Boston MA 02110-1301 USA
*/
#if HAVE_CONFIG_H
# include “config.h“
#endif
#include
#include
#include
#include “bitstream.h“
BitStream *BitStream_new(void)
{
BitStream *bstream;
bstream = (BitStream *)malloc(sizeof(BitStream));
if(bstream == NULL) return NULL;
bstream->length = 0;
bstream->data = NULL;
return bstream;
}
static int BitStream_allocate(BitStream *bstream int length)
{
unsigned char *data;
if(bstream == NULL) {
return -1;
}
data = (unsigned char *)malloc(length);
if(data == NULL) {
return -1;
}
if(bstream->data) {
free(bstream->data);
}
bstream->length = length;
bstream->data = data;
return 0;
}
static BitStream *BitStream_newFromNum(int bits unsigned int num)
{
unsigned int mask;
int i;
unsigned char *p;
BitStream *bstream;
bstream = BitStream_new();
if(bstream == NULL) return NULL;
if(BitStream_allocate(bstream bits)) {
BitStream_free(bstream);
return NULL;
}
p = bstream->data;
mask = 1 << (bits - 1);
for(i=0; i if(num & mask) {
*p = 1;
} else {
*p = 0;
}
p++;
mask = mask >> 1;
}
return bstream;
}
static BitStream *BitStream_newFromBytes(int size unsigned char *data)
{
unsigned char mask;
int i j;
unsigned char *p;
BitStream *bstream;
bstream = BitStream_new();
if(bstream == NULL) return NULL;
if(BitStream_allocate(bstream size * 8)) {
BitStream_free(bstream);
return NULL;
}
p = bstream->data;
for(i=0; i mask = 0x80;
for(j=0; j<8; j++) {
if(data[i] & mask) {
*p = 1;
} else {
*p = 0;
}
p++;
mask = mask >> 1;
}
}
return bstream;
}
int BitStream_append(BitStream *bstream BitStream *arg)
{
unsigned char *data;
if(arg == NULL) {
return -1;
}
if(arg->length == 0) {
return 0;
}
if(bstream->length == 0) {
if(BitStream_allocate(bstream arg->length)) {
return -1;
}
memcpy(bstream->data arg->data arg->length);
return 0;
}
data = (unsigned char *)malloc(bstream->length + arg->length);
if(data == NULL) {
return -1;
}
memcpy(data bstream->data bstream->length);
memcpy(data + bstream->length arg->data arg->length);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4311 2018-06-19 19:43 二维码实验\ASP\qrcode\bitstream.c
文件 1432 2014-07-24 12:17 二维码实验\ASP\qrcode\bitstream.h
文件 2513 2016-11-18 01:23 二维码实验\ASP\qrcode\config.h
文件 6980 2016-11-18 00:58 二维码实验\ASP\qrcode\mask.c
文件 1560 2014-07-04 00:43 二维码实验\ASP\qrcode\mask.h
文件 4106 2018-06-16 18:47 二维码实验\ASP\qrcode\mmask.c
文件 1404 2014-07-04 00:43 二维码实验\ASP\qrcode\mmask.h
文件 7089 2014-07-04 00:43 二维码实验\ASP\qrcode\mqrspec.c
文件 4774 2014-07-04 00:43 二维码实验\ASP\qrcode\mqrspec.h
文件 20124 2018-06-16 18:47 二维码实验\ASP\qrcode\qrencode.c
文件 20916 2014-07-24 12:17 二维码实验\ASP\qrcode\qrencode.h
文件 2778 2014-07-04 00:43 二维码实验\ASP\qrcode\qrencode_inner.h
文件 38918 2018-06-14 18:05 二维码实验\ASP\qrcode\qrinput.c
文件 3651 2014-07-24 12:17 二维码实验\ASP\qrcode\qrinput.h
文件 15715 2014-07-24 12:17 二维码实验\ASP\qrcode\qrspec.c
文件 5832 2014-07-24 12:17 二维码实验\ASP\qrcode\qrspec.h
文件 9176 2018-06-16 18:46 二维码实验\ASP\qrcode\rscode.c
文件 1468 2014-07-24 12:17 二维码实验\ASP\qrcode\rscode.h
文件 7709 2014-07-24 12:17 二维码实验\ASP\qrcode\split.c
文件 1913 2014-07-24 12:17 二维码实验\ASP\qrcode\split.h
文件 109142 2014-07-17 21:52 二维码实验\CORE\core_cm4.h
文件 22735 2014-07-17 21:52 二维码实验\CORE\core_cm4_simd.h
文件 17146 2014-07-17 21:52 二维码实验\CORE\core_cmFunc.h
文件 20513 2014-07-17 21:52 二维码实验\CORE\core_cmInstr.h
文件 29605 2018-06-16 19:35 二维码实验\CORE\startup_stm32f40_41xxx.s
文件 6924 2014-08-01 23:18 二维码实验\FWLIB\inc\misc.h
文件 32880 2014-08-01 23:18 二维码实验\FWLIB\inc\stm32f4xx_adc.h
文件 27318 2014-08-01 23:18 二维码实验\FWLIB\inc\stm32f4xx_can.h
文件 2416 2014-08-01 23:18 二维码实验\FWLIB\inc\stm32f4xx_crc.h
文件 14481 2014-08-01 23:18 二维码实验\FWLIB\inc\stm32f4xx_cryp.h
............此处省略189个文件信息
- 上一篇:基于ARM9的网络广告机Qt
- 下一篇:apache2.4 vc9
相关资源
- 批量生成二维码工具
- 正点原子FPGA静态时序分析与时序约束
- STM32F407ZGT6核心板原理图
- Visual Studio中使用开源二维码QR库libq
- 条形码二维码扫描识别模块GM65程序之
- MS5611 stm32f407 驱动
- 智能家居网关程序
- STM32F407捕捉外部脉冲计数
- STM32F407ZG实现4*4矩阵键盘
- 基于STM32F407的智能安防系统
- STM32F407温湿度上传物联网平台
- STM32F407+OV2640+ONENET
- STM32F407 双轮小车 定时器编码器模式测
- stm32 f103RCT6用正点原子Mini板可用的R
- 仿微信的二维码扫描跟微信一模一样
- STM32F407ADC采集信号通过DMA发送给内存
- 仿微信二维码、条码扫描
- stm32f407 IAP
- zw_二维码扫描案例.zip
- MLX90614(GY906)___STM32F407ZGT6
- 嵌入式系统课程设计报告--多功能电子
- 嵌入式系统课程设计--多功能电子钟设
- tcs3200 stm32正点原子历程
- STM32F103ZET6控制二维码模块GM65
- STM32F407FreeRTOS开发手册V1_0
- 基于STM32F407ZGT6库函数写的Modbus协议
- 基于STM32F407写的LoRa SX-1278源码
- STM32F4 EMWIN开发手册V3.0(正点原子)
- STM32F4xx Lib
- stm32F407从flash上播放mp3 flash是W25Q128
评论
共有 条评论