基于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

posted @ 2022-02-18 08:10  Bryce-Hu  阅读(1106)  评论(0)    收藏  举报