钻石会员
主题
帖子
积分11988
阅读权限50
注册时间2011-1-9
最后登录1970-1-1
在线时间 小时
|
提供一种思路,刷屏的福音
相信各位如果接触过电脑C语言那么就一定接触过printf函数非常好用的输出函数,可以很简单的将数据显示到屏幕上面
对于51单片机来说标准printf函数可能很少有人去用,但是一旦知道怎么用会使显示变得非常简单
首先KEIL官方在STDIO.H里面定义了printf()函数,一般玩51的可能都知道,将数据字符通过标准串口进行输出,这对刷屏显然没用
但是很少有人知道这个库里面KEIL定义了vsprintf()函数
这个函数就好玩了,作用是把标准printf数据解析到一个数组里面.
于是就有这个程序
#include <stdio.h> //vsprintf()所在库
#include <stdarg.h> //va_start() va_end()所在库
char xdata string[100]; //输出数组,长度任意
void lcd_printf(char *fmt,...) //解析函数,输入量为标准printf内容
{
char* ap;
va_start(ap,fmt);
vsprintf(string,fmt,ap);
va_end(ap);
}
很简单的小程序,功能就是解析数据进入数组
假如输入这样
main()
{lcd_printf("P =% 07.3f 安培",8.1);}
那么char型数组里面内容就是
string[]={P = 08.100 安培\0} (安培是双字节字符,玩过字库的都知道)
假如输入lcd_printf("P %c",68);
那么char型数组里面内容就是
string[]={P D\0};
在解析后将string数组里的内容用自制的刷字符串函数刷到屏上面
1602,12864,彩屏,只要例程里面有刷字符串函数,将会非常惬意的进行刷屏操作
是不是很简单?
PS,伸手系的别找我要程序,懂点单片机的自然能写出来,明白的花5分钟就能移植过去.自己不咋玩lcd只有刷OLED的函数
|
|