STM32-蓝桥杯嵌入式LCD显示的问题

STM32-sprintf的使用问题

今天在做蓝桥杯嵌入式的时候,遇到了一个非常奇怪的问题,记录一下
首先如下图,在while循环中,写了这么一段led的显示的程序,开发板的运行状态达到了期望的运行状态
在这里插入图片描述

然后,我将上面这一段程序写成一个函数,如下图
在这里插入图片描述
此时运行程序,开发板的运行状态和之前的结果就不一样了,相当于程序卡死在某个地方一样
最后找到解决方法,
一、将uint8_t lcd_string[20];定义成全局变量,程序运行正常。
二、如下图所示,定义成局部变量,但是在使用sprintf的时候的格式化字符串要分开使用,即定义成两个,分别是
uint8_t lcd_string1[20];
uint8_t lcd_string2[20];
在这里插入图片描述
具体原因不明,但是感觉应该是sprintf导致的,所以我在使用sprintf的时候,还是最好memset清空一下字符串,否则可能会出现一些奇怪的问题。

猜你喜欢

转载自blog.csdn.net/qq_43715171/article/details/113001346