Esc屏幕颜色控制+QRcode打印

发布于 2020-06-30 14:32:59
    本帖最后由 leeherry 于 2020-6-30 14:42 编辑


拜见各位大佬, 小弟我又来混脸熟了新人发帖, 还求各位大佬多多包涵


我在翻rt-thread的package的时候,发现了QRcode的包
就拿来试试, 但是shell的打印结果并不能扫描
qrcode 的github的示例原图
QQ截图20200630142303.jpg

是的,于是我就又瞎鼓捣了
代码在原版的基础上,略微的修改了一点

char ap_qrcode[150];    //我的本意是做手机扫一扫自动连接WIFI的
rt_sprintf(ap_qrcode, "WIFI:T:WPA;S:%s;P:%s;;",ap_ssid,ap_pswd);//自行修改你要连接的WIFI的ssid和password

#ifdef PKG_USING_QRCODE
//"\033[37;40m something here \033[0m"
//echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"
//echo -e "\033[40;37m 黑底白字 \033[0m"
//echo -e "\033[47;30m 白底黑字 \033[0m"

#define DEFAULT_QR_VERSION 5 //说实话,这个版本号没有弄懂, 小了也识别不出来, 求大佬指教
QRCode qrcode;
uint8_t *qrcodeBytes = (uint8_t *)rt_calloc(1, qrcode_getBufferSize(DEFAULT_QR_VERSION));
qrcode_initText(&qrcode, qrcodeBytes, DEFAULT_QR_VERSION, ECC_LOW, ap_qrcode);//这个地方可以改成其他你要放到二维码里面的字符串
{
for (uint8_t x = 0; x < qrcode.size +2; x++) //最上面一行
{
rt_kprintf("\033[47;30m \033[0m"); //默认是两个空格
}
rt_kprintf("\n"); //换行
for (uint8_t y = 0; y < qrcode.size; y++)
{
rt_kprintf("\033[47;30m \033[0m"); //每行第一列
for (uint8_t x = 0; x < qrcode.size; x++)
{
if (qrcode_getModule(&qrcode, x, y))
{
rt_kprintf("\033[40;37m \033[0m");
//rt_kprintf("**");
} else
{
rt_kprintf("\033[47;30m \033[0m");
//rt_kprintf(" ");
}
}
rt_kprintf("\033[47;30m \033[0m"); //每行最后一列
rt_kprintf("\n");
}
for (uint8_t x = 0; x < qrcode.size +2; x++) //最下面一行
{
rt_kprintf("\033[47;30m \033[0m");
}
rt_kprintf("\n"); //换行
}

rt_free(qrcodeBytes);
#endif




效果如图
QQ截图20200630143015.jpg




查看更多

关注者
0
被浏览
74
3 个回答
HappyTime
HappyTime 2020-06-30
{:2_37:}这个有意思。。。。
aozima
aozima 2020-06-30
我还以为二维码里面是楼主微信呢

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友