用sprintf函数啊,把数字“打印”到一个数组里,然后用LCD-showstring来显示就可以了。
char buf[30];
sprintf(buf,"Frequency=%dHz",Frequency);
OLED是有机发光二极管,自发光,不用背光。
“OLED是一种利用多层有机薄膜结构产生电致发光的器件,它很容易制作,而且只需要低的驱动电压,这些主要的特征使得OLED在满足平面显示器的应用上显得非常突出。OLED显示屏比LCD更轻薄、亮度高、功耗低、响应快、清晰度高、柔性好、发光效率高”——来自百度百科
TFTLCD是薄膜晶体管液晶显示器的缩写,名字来源于液晶显示屏每个像素上都设有薄膜晶体管(TFT),亮度高,对比度,有色彩。
“LCD ( Liquid Crystal Display 的简称)液晶显示器。LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。”——来自百度百科
设置RS为高(数据)/低(命令),然后拉低片选。
读数据:RD为低,在RD的上升沿去读取数据线上的数据。
写数据:WR为低,在WR的上升沿写数据到数据线上。
在蓝桥杯比赛中调用官方LCD例程开发极为方便。
下面着重叙述几个重要的函数:
首先是显示颜色:White Black Red等常用颜色已经在lcd.h中有宏定义,可以直接使用。
对RGB颜色有额外需求的话,可以访问这个网站【 RGB颜色对照表 (917118.com) 获取常见的颜色RGB码。
】
LCD_Clear():用设置的颜色填充整个LCD屏
LCD_SetBackColor():设置背景色
LCD_SetTextColor():设置文字颜色
LCD_DisplayStringLine(Linex," 文字内容 ");
Linex代表行数,从Line0到Line9,屏幕从上到下分为10行
“”:字符串中填写所要显示的内容,一行显示20个字符。“ ”中的内容如果多于20,则多于内容不显示;若少于20,则空余字符位置显示LCD_Clear()中设置的底层颜色。
总结:LCD屏有10行20列。
引用头文件后
即可在主函数main.c中实现LCD功能
显示效果:上半屏幕为蓝色,显示白色字体Hello World;下半屏幕为白色,显示蓝色字体Author: somebody。
lcd.h文件整体如下:
例程lcd.c文件整体如下:
可以includestdio.h头文件,然后用sprint函数格式化输出,,,比如你要打印TestValue=10;的值,可以如下:#include“stdio.h”发激篡刻诂灸磋熏单抹voidLCD_Show(void){chartmp[5];sprintf(tmp,"%d",TestValue);//在此调用打印tmp数组的LCD底层显示函数即可,比如LCD_ShowString(tmp);}
就是分成两次整数呀,比如12.34;第一步声明两个int型变量就叫A,B;A=12.34;B=(12.34-A)*100;算下来A=12,B=34;接下来就是先显示A,然后加一个‘.';最后再显示B;把这个过程封装成一个函数,就能显示小数了呀。保留多少位小数B=(float-A)*n;这个n就是10的几次方。有思路没?这个就是简单的实现了sprint的功能。
全部都是宏,你要看宏代码才能知道具体实现,最好看一下。。。这就是一个设置写寄存器的指令。。。就是确定将要写哪个就寄存器(该寄存器地址就是data)。。。 前两个是清楚使能标志的,标志位1通常不能操作。。。DATAOUT是写数据,LCD_WR_CLR,是写标志清零,然后在写寄存器标志和使能标志至1,就写出去了。。。
通常写外部设备寄存器,很多是先写寄存器地址,确定操作哪个寄存器,后读写数据。。。比如flash,LCD,USB芯片等大多数地址数据总线公用的设备都是这样。。。
LCD本身就有显示控制芯片,STM32只是将显示内容写入到LCD显存而已,具体显示刷新由控制芯片完成。
本文标签:stm32lcd如何保存数值