C/C++ 二维码的实现,并放大显示。(目标平台MT2523)

本文介绍了如何在MT2523目标平台上实现二维码的生成与放大显示。首先,移植了二维码生成的C语言库,并通过调用接口生成二维码数据,然后将其显示在LCD上。由于屏幕像素密度高,二维码显示较小,作者通过放大每个像素点来解决这一问题,例如放大2倍时,每个像素点变为4个点的正方形。代码示例和实际效果图展示了解决方案的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面在做MT2523 UI显示的时候需要用到二维码,于是上网查了很多资料。

移植了二维码生成的C语言库到自己的项目。然后调用接口生成二维码数据。

最后显示到自己的LCD上面。

 

如果不知道库的可以查看博客:https://blog.youkuaiyun.com/qq_21475601/article/details/71480028#commentsedit

里面介绍了如何使用代码库文件,需要自己移植。文章写的很好。

 

本文假设读者已经移植完成,只需要显示。

我自己的在显示的时候一开始显示很小。原因是屏幕像素比较密,像素点很小,需要自己实现放大显示。

思路:放大2倍,4个点的正方形,3倍9个点,4倍16个点,以此类推。。。

每个单片机显示接口函数不一样,下面是我的demo代码

void QRcode_screen_show(void)
{
    //我的屏幕是320*320,start_x,start_y代表开始的坐标,block_width代表每个二维码点的宽度(pixel)
    uint32_t start_x = 10,start_y = 10,block_width = 12; 
    uint8_t i = 0,j = 0,k = 0;
    bool retState = false;
    //QRcode *code;
    //测试的字符串
    char *p = "www.baidu.com";
    //更新屏幕前先把LCD显示全黑背景,起始(0,0)->(319,319),填充0x00代表黑色
    gdi_draw_filled_rectangle(0,0,319,319,0x00);
    //调用生成二维码的核心接口,返回成功判断
    retState = Enc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值