说明:文件简单,移植方便,程序占用空间小,简单易懂,
全部编程做好的,测试通过的,还有文字备注,源码下载 :
本文二维码源码下载后直接跳入第四步
1、下载QRcode 二维码源码 Git下载
2、解压后得到,如下文件
3、文件很多,只需要提取库文件就可以了,下图三个文件
4、添加到工程上编辑后,如果会报错就加对应的头文件即可
5、创建两个处理二维码显示的文件QRcode_main.c和Rcode_main.h
在QRcode_main.c中添加两个函数,
一个用来获取二维码数据
void QRGenerator(char *input)
{
int side, i,j,a;
uint8_t bitdata[QR_MAX_BITDATA];
//remove newline
if(input[strlen(input) - 1] == '\n')
{
input[strlen(input) - 1] = 0;
}
side = qr_encode(QR_LEVEL_M, 0, input, 0, bitdata);//QR_LEVEL_L
displayQRCode(side, bitdata);
}
一个是显示二维码数据
void displayQRCode(int side, uint8_t *bitdata)
{
int i=0;
int j=0;
int a=0;
int l=0;
int n=0;
int OUT_FILE_PIXEL_PRESCALER = 10;//查看发现太小了,我们可以修改显示函数的参数
// ILI9341_DrawRectangle(0,0,320,240,0xFFFF,1);//LCD
GUI_FillRect(55,10,280,230);
GUI_SetColor(GUI_WHITE);
if(side==21)
{
OUT_FILE_PIXEL_PRESCALER = 10;
}
for (i = 0; i < side; i++)
{
for (j = 0; j < side; j++)
{
a=j*side+i;
if((bitdata[a / 8] & (1 << (7 - a%8))))
{
for (l = 0; l < OUT_FILE_PIXEL_PRESCALER; l++)
{
for(n = 0; n < OUT_FILE_PIXEL_PRESCALER; n++)
{
// ILI9341_SetPointPixel(OUT_FILE_PIXEL_PRESCALER*i+l,OUT_FILE_PIXEL_PRESCALER*(j)+n,0x0);
GUI_SetColor(GUI_BLUE);//GUI_BLACK
GUI_DrawPixel(OUT_FILE_PIXEL_PRESCALER*i+l+m_OFFSET_VALUE_X,OUT_FILE_PIXEL_PRESCALER*(j)+n+m_OFFSET_VALUE_Y);//GUI_DrawPoint
}
}
}
}
}
}
6、调用QRGenerator()函数进行测试
QRGenerator(“UID:0x000000000000”);
7、烧录程序,查看结果
8、我们可以修改显示函数的参数
#define m_OFFSET_VALUE_X 60 //X坐标偏移
#define m_OFFSET_VALUE_Y 15 //Y坐标偏移
int OUT_FILE_PIXEL_PRESCALER = 10;//查看发现太小了,我们可以修改显示函数的参数
可以根据自己的 需要来修改显示的位置、大小、颜色------小kiss
结果看着还可以,使用微信扫码测试一下,登陆成功!!!