基于STM32F103RCT6的二维码显示实验
工具:正点原子Mini开发板,LCD,keil5
由于近期的一个项目需要用到二维码显示,在实现之后整理下各种坑,并详细说明如何实现。
参考redsleep网友,参考网址:https://blog.csdn.net/redsleep/article/details/82898631
1.首先下载 QRcode 二维码源码 https://github.com/kazimierczak-robert/STMQRCode

2.解压文件,提取下图三个文件即可

3.将文件添加到自己的工程中,并设置keil5支持C99

这是由于qr_encode.c中 存在大量 局部变量 定义在程序段中,C89标准中变量只能定义在函数的前面,所以要使用C99标准。

4.在qr_consts.h中添加头文件,支持 uint8_t 类型

5.修改qr_encode.h文件中的二维码版本,
由于 STM32F103xC 系列的RAM容量是48K,如果选择QR_VERSIPN_L版本则需要RAM约为57K,
(切换芯片的测试结果)
大于该系列的RAM容量,就会产生下图空间不足的错误。
(该链接解释了keil编译后Program Size的信息含义?https://blog.csdn.net/yangkuiwu/article/details/78219995)

6.新建两个文件QRcode_main.c和Rcode_main.h,用于生成二维码和显示二维码,
在QRcode_main.c中添加函数:

7.调用函数

8.最后在 startup_stm32f10x_hd.s中 调整堆栈大小,初始值 0x00000400 调整值 0x00000F00

不调整堆栈会溢出,因为qr_encode.c中运用了大容量数组
最后附上,成功的图

STM32F103RCT6+LCD工程代码:https://download.csdn.net/download/qq_36818449/11223887

浙公网安备 33010602011771号