蓝桥杯嵌入式开发经验分享(6.液晶驱动程序的调用)
作者:马一飞 QQ:791729359
这次给大家讲解下如何使用蓝桥杯嵌入式开发板的TFT-LCD驱动程序。在蓝桥杯比赛中,我们不需要去写LCD显示屏的代码,我们学会如何调用主办方给我们写好的LCD驱动就ok了。
LCD驱动代码我们可以在工程目录里面看到,
我们打开它的头文件看看里面有什么驱动函数。

发现,确实有挺多函数的。但实际上我们真正用到的函数,也就那几条。
void STM3210B_LCD_Init(void); // LCD液晶初始化
void LCD_SetTextColor(vu16 Color); //改变字体颜色
void LCD_ClearLine(u8 Line); // 清除行
void LCD_DisplayStringLine(u8 Line, u8 *ptr); // 行显示字符串
根据往年的题目分析结果来看,用到的函数基本就这四个。而且第一个函数液晶驱动参考例程里面已经帮我们初始化了液晶,我们初始化函数也可以排除掉,那么我们用到函数也就三个。
根据LCD驱动代码我们可以看到,这个LCD显示字符是按行显示的,总共可以显示10行字符(Line0~Line9),并且每一行可以显示20个字符。
void LCD_SetTextColor(vu16 Color); //改变字体颜色
改变字体颜色这个函数就不用多说了,实际上就是改变你接下来显示字体的颜色
我们来举个例子。

那么这个代码实现出来的效果就是这样的

我们能够发现字体的颜色是不一样的。
那么void LCD_ClearLine(u8 Line); 这个函数就是擦除你选定行的字符。这里就不演示了。
我们用的最多的还是void LCD_DisplayStringLine(u8 Line, u8 *ptr); // 行显示字符串
1.第一种使用方法,就是直接显示写入的字符串。就类似于上面那样。
LCD_DisplayStringLine(Line3,(u8*) " Ma-Yi-Fei ");
那么在第3行就能够显示 Ma-Yi-Fei 这个字符串了。
这个方法就面临了一个问题,如果我想显示一个数字变量,那可怎么办。那么,还有第二个方法。
2.我们首先要先包含stdio.h这个头文件。
同时我们定义一个数组,用来储存我们的数据,
长度只需要20即可,因为我们的LCD显示屏上一行只能显示20个字符。
那么我们就得使用到C语言的一条函数,sprintf();
我来举个例子大家就能很清楚的了解是怎么个用法了。
u8 temp = 30;
float AO = 3.845;
sprintf((char*)string,"temp=%d A0=%.1f ",temp,AO);
LCD_DisplayStringLine(Line8,string);
那么我们显示出来的效果就是

我们很容易就会发现这条语句,大致的作用就是以指定的字符串格式存入数组中,然后再调用显示函数把数组里的元素显示出来。
如果大家还不懂其中的原理,建议可以百度查查sprintf的用法。
( 以上仅属于个人观点)
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)