在线时间97 小时
UID384705
注册时间2017-3-8
NXP金币0
TA的每日心情 | 开心 2019-7-20 09:11 |
---|
签到天数: 7 天 连续签到: 1 天 [LV.3]偶尔看看II
高级会员

- 积分
- 642
- 最后登录
- 2019-12-2
|
本帖最后由 wbeast 于 2019-4-26 17:55 编辑
最近在同性交流网站github上看到一个开源动态显示二维码源码。移植在lpc1768上显示。
源码来自:http://github.com/fukuchi/libqrencode,
移植步骤:
1、下载源码
2、把以下的文件添加进来
3、创建config.h文件。添加以下内容
4、在keil中:需要options for Target中设置C/C++ define 选项:HAVE_CONFIG_H
5、需要设置堆栈的大小:Stack_Size=200,Heap_Size=2000,
6、只需要调用API函数QRcode_encodeString就可以,QRcode *QRcode_encodeString(const char *string, int version, QRecLevel level,QRencodeMode hint, int casesensitive)
string=输入数据,把数据写入二维码中,version=版本,QRecLevel=等级,
返回:二维码数据,二维码宽度,以及版本信息
7、二维码显示
- /*********************************************************************************************************
- ** 函数名: void QrCode_Display(uint16_t Xsta,uint16_t Ysta,uint16_t Width,uint16_t Hight,unsigned char *data)
- ** 函数函数功能: 显示二维码 可以放大显示二维码
- ** 输入参数: Xsta =显示x轴起始位置,Ysta=显示Y轴起始位置,Width=显示宽度,Hight=显示高度,multiple=放大倍数,data=二维码数据
- ** 输出参数: 无
- ** 返回值: 无
- 放大显示原理:假如放大倍数是=3,会在一个点的数据X轴上画3次,Y轴自增加1,一个点的数据Y轴上画3次,依次类推
- 注意:显示尺寸不能大于LCD的尺寸(240X320)
- *********************************************************************************************************/
- void QrCode_Display(uint16_t Xsta,uint16_t Ysta,uint16_t Width,uint16_t Hight,uint8_t multiple,unsigned char *data){
-
- uint16_t x=0,y=0,xx=0,yy=0;
-
- for(y=0;y<Width;y++)//列
- {
- for(x=0;x<Hight;x++)//行
- {
- for(yy=0;yy<multiple;yy++){//放大倍数
-
- for(xx=0;xx<multiple;xx++){//放大倍数
- if(data[y*Width+x]&0x01)
- {
- LCD_DrawPoint(Xsta+x*multiple+xx,Ysta+y*multiple+yy,Red);
-
-
-
- }
- else
- {
- LCD_DrawPoint(Xsta+x*multiple+xx,Ysta+y*multiple+yy,White);
- }
-
-
- }
- }
- }
- }
- }
复制代码
微信扫出来的数据:
【11】LPC1768_LCD显示二维码.rar
(241.58 KB, 下载次数: 45)
|
|