(Chatgpt辅助)C语言移植Code128B条形码算法到LVGL8.3【附跑通代码】
序言:
这篇博客是我在移植条形码过程中,发现CSDN以及Google上面较少关于C语言移植条形码到LVGL的
资料文档。同时又恰好我刚开始使用Chatgpt辅助移植,所以就把相关内容总结整理一遍。我本来是
打算移植code128auto算法的,但是临时有其他事情中断了,所以只能把code128B的内容总结一下,
后续有空我会继续完善这个博客的。
<1>CODE128算法简介
详细的介绍可以参考这个博客:https://blog.csdn.net/walk_ing/article/details/52712641
我对该算法的粗浅概括可以总结为以下几点:
<1>Code128B编码规则:开始位 + 数据位 + 检验位 + 结束位
<2>Code128编码表规定一份对应法则:即你所输入的字符将根据这份表格映射成10(bs)形式,其
中1表示黑色,0表示白色
<3>开始位,校验位,结束位都已经被规定好。只有数据位需要一一对应。
<2>C语言实现算法
根据上述3点总结就可以写出相应的代码
// Code 128字符集
const char* code128_charset_B = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
// code128编码值数组,每个字符占11个单位表示
static const uint16_t s_code128_encode_set[] = {
0x6cc, 0x66c, 0x666, 0x498, 0x48c, 0x44c, 0x4c8, 0x4c4, 0x464, 0x648,
0x644, 0x624, 0x59c, 0x4dc, 0x4ce, 0x5cc, 0x4ec, 0x4e6, 0x672, 0x65c,
0x64e, 0x6e4, 0x674, 0x76e, 0x74c, 0x72c, 0x726, 0x764, 0x734, 0x732,
0x6d8, 0x6c6, 0x636, 0x518, 0x458, 0x446, 0x588, 0x468, 0x462, 0x688,
0x628, 0x622, 0x5b8, 0x58e, 0x46e, 0x5d8, 0x5c6, 0x476, 0x776, 0x68e,
0x62e, 0x6e8, 0x6e2, 0x6ee, 0x758, 0x746, 0x716, 0x768, 0x762, 0x71a,
0x77a, 0x642, 0x78a, 0x530, 0x50c, 0x4b0, 0x486,