STM32热敏打印机打印二维码

我用的是炜煌WH-A9热敏打印机。

要打印二维码首先要生成二维码,借鉴了站内二维码生成库:简谈二维码(QRcode)的C语言生成,在单片机平台的实现_二维码c语言-CSDN博客

只需要移植其中的三个文件data_type.h,QR_Encode.c和QR_Encode.h

移植之后包含头文件,使用函数EncodeData(char *lpsSource),参数就填写要转为二维码的字符串,生成的数据为0和1,保存在全局变量的二维数组m_byModuleData中。          

参数MAX_MODULESIZE可以根据要生成二维码的字符长度来调整,代码中有注释。

到这里数据有了,接下来开始打印。

我在这里用的是 打印点行图形 命令,格式如下:

n1只有最低两位有效,用来修改倍高倍宽打印,n2是每一点行打印的字节数,可以填m_nSymbleSize。

这个命令一次只能打印一点行,需要循环打印。

注意:

        这个库生成的数据,一个字节打一个点,我这里将其改为八个点,也就是遍历一下数组,将

0x01全改为0xFF,这样打印出来的二维码很扁,配合倍高或倍宽命令倒是可以进行扫描。

        为了解决过扁的问题,我在每次循环打印的时候将同一点行数据打印了四遍,这样打印出来的效果还可以,起码看着是个二维码了方方正正的。

遍历数组:

for(int i=0;i<sizeof(m_byModuleData[i]);i++){
		for(int j=0;j<sizeof(m_byModuleData[i]);j++){
			if(m_byModuleData[i][j]==0x01)
			{
				m_byModuleData[i][j]=0XFF;
			}
		}
	};

循环打印:

	for(int i=0;i<m_nSymbleSize;i++){
		for(int j=0;j<4;j++){//串口发给打印机 打印
	         //这里放打印指令和要打印的数据
		}
	}

打印效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值