【嵌入式Linux】LCD应用程序2440

来源:互联网 发布:梁朝伟张曼玉 知乎 编辑:程序博客网 时间:2024/05/20 16:11

参考了文献:

http://www.cnblogs.com/cxjchen/archive/2013/05/13/3075490.html

http://www.cnblogs.com/chrispauls/p/4026760.html

#include <stdio.h>#include <fcntl.h>#include <linux/fb.h>#include <sys/mman.h>#define BLACK 0x00000#define RED   0x0F100#define GREEN 0x007E0#define BLUE  0x0001F#define WHITE 0x0FFFFint fbfd;struct fb_var_screeninfo varinfo;struct fb_fix_screeninfo fixinfo;unsigned long screensize;unsigned long x_width;    //每行字节数unsigned long y_width;    //每列字节数unsigned short * fbp;void lcd_Disp_Dot(int x,int y);void lcd_Disp_Char(int x,int y,char c);void lcd_Disp_Str(int x,int y,char* str);/* 字模 每个占16行 0: ' ' 1~26: a~z 27~52:A~Z 53~63:0~9 64:@ 65:#*/static const char font_8x16[] = {    /* 32 0x20 ' ' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 97 0x61 'a' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x78, /* 01111000 */    0x0c, /* 00001100 */    0x7c, /* 01111100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0x76, /* 01110110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 98 0x62 'b' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xe0, /* 11100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x78, /* 01111000 */    0x6c, /* 01101100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 99 0x63 'c' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 100 0x64 'd' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x1c, /* 00011100 */    0x0c, /* 00001100 */    0x0c, /* 00001100 */    0x3c, /* 00111100 */    0x6c, /* 01101100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0x76, /* 01110110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 101 0x65 'e' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xfe, /* 11111110 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 102 0x66 'f' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x1c, /* 00011100 */    0x36, /* 00110110 */    0x32, /* 00110010 */    0x30, /* 00110000 */    0x78, /* 01111000 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0x78, /* 01111000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 103 0x67 'g' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x76, /* 01110110 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0x7c, /* 01111100 */    0x0c, /* 00001100 */    0xcc, /* 11001100 */    0x78, /* 01111000 */    0x00, /* 00000000 */    /* 104 0x68 'h' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xe0, /* 11100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x6c, /* 01101100 */    0x76, /* 01110110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0xe6, /* 11100110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 105 0x69 'i' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x00, /* 00000000 */    0x38, /* 00111000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x3c, /* 00111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 106 0x6a 'j' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x00, /* 00000000 */    0x0e, /* 00001110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x3c, /* 00111100 */    0x00, /* 00000000 */    /* 107 0x6b 'k' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xe0, /* 11100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x66, /* 01100110 */    0x6c, /* 01101100 */    0x78, /* 01111000 */    0x78, /* 01111000 */    0x6c, /* 01101100 */    0x66, /* 01100110 */    0xe6, /* 11100110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 108 0x6c 'l' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x38, /* 00111000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x3c, /* 00111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 109 0x6d 'm' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xec, /* 11101100 */    0xfe, /* 11111110 */    0xd6, /* 11010110 */    0xd6, /* 11010110 */    0xd6, /* 11010110 */    0xd6, /* 11010110 */    0xc6, /* 11000110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 110 0x6e 'n' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xdc, /* 11011100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 111 0x6f 'o' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 112 0x70 'p' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xdc, /* 11011100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x7c, /* 01111100 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0xf0, /* 11110000 */    0x00, /* 00000000 */    /* 113 0x71 'q' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x76, /* 01110110 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0x7c, /* 01111100 */    0x0c, /* 00001100 */    0x0c, /* 00001100 */    0x1e, /* 00011110 */    0x00, /* 00000000 */    /* 114 0x72 'r' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xdc, /* 11011100 */    0x76, /* 01110110 */    0x66, /* 01100110 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0xf0, /* 11110000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 115 0x73 's' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0x60, /* 01100000 */    0x38, /* 00111000 */    0x0c, /* 00001100 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 116 0x74 't' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x10, /* 00010000 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0xfc, /* 11111100 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0x36, /* 00110110 */    0x1c, /* 00011100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 117 0x75 'u' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0x76, /* 01110110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 118 0x76 'v' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x6c, /* 01101100 */    0x38, /* 00111000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 119 0x77 'w' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xd6, /* 11010110 */    0xd6, /* 11010110 */    0xd6, /* 11010110 */    0xfe, /* 11111110 */    0x6c, /* 01101100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 120 0x78 'x' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0x6c, /* 01101100 */    0x38, /* 00111000 */    0x38, /* 00111000 */    0x38, /* 00111000 */    0x6c, /* 01101100 */    0xc6, /* 11000110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 121 0x79 'y' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x7e, /* 01111110 */    0x06, /* 00000110 */    0x0c, /* 00001100 */    0xf8, /* 11111000 */    0x00, /* 00000000 */    /* 122 0x7a 'z' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xfe, /* 11111110 */    0xcc, /* 11001100 */    0x18, /* 00011000 */    0x30, /* 00110000 */    0x60, /* 01100000 */    0xc6, /* 11000110 */    0xfe, /* 11111110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 65 0x41 'A' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x10, /* 00010000 */    0x38, /* 00111000 */    0x6c, /* 01101100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xfe, /* 11111110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 66 0x42 'B' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xfc, /* 11111100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x7c, /* 01111100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0xfc, /* 11111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 67 0x43 'C' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x3c, /* 00111100 */    0x66, /* 01100110 */    0xc2, /* 11000010 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xc2, /* 11000010 */    0x66, /* 01100110 */    0x3c, /* 00111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 68 0x44 'D' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xf8, /* 11111000 */    0x6c, /* 01101100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x6c, /* 01101100 */    0xf8, /* 11111000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 69 0x45 'E' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xfe, /* 11111110 */    0x66, /* 01100110 */    0x62, /* 01100010 */    0x68, /* 01101000 */    0x78, /* 01111000 */    0x68, /* 01101000 */    0x60, /* 01100000 */    0x62, /* 01100010 */    0x66, /* 01100110 */    0xfe, /* 11111110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 70 0x46 'F' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xfe, /* 11111110 */    0x66, /* 01100110 */    0x62, /* 01100010 */    0x68, /* 01101000 */    0x78, /* 01111000 */    0x68, /* 01101000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0xf0, /* 11110000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 71 0x47 'G' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x3c, /* 00111100 */    0x66, /* 01100110 */    0xc2, /* 11000010 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xde, /* 11011110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x66, /* 01100110 */    0x3a, /* 00111010 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 72 0x48 'H' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xfe, /* 11111110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 73 0x49 'I' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x3c, /* 00111100 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x3c, /* 00111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 74 0x4a 'J' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x1e, /* 00011110 */    0x0c, /* 00001100 */    0x0c, /* 00001100 */    0x0c, /* 00001100 */    0x0c, /* 00001100 */    0x0c, /* 00001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0xcc, /* 11001100 */    0x78, /* 01111000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 75 0x4b 'K' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xe6, /* 11100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x6c, /* 01101100 */    0x78, /* 01111000 */    0x78, /* 01111000 */    0x6c, /* 01101100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0xe6, /* 11100110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 76 0x4c 'L' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xf0, /* 11110000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x62, /* 01100010 */    0x66, /* 01100110 */    0xfe, /* 11111110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 77 0x4d 'M' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xee, /* 11101110 */    0xfe, /* 11111110 */    0xfe, /* 11111110 */    0xd6, /* 11010110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 78 0x4e 'N' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xe6, /* 11100110 */    0xf6, /* 11110110 */    0xfe, /* 11111110 */    0xde, /* 11011110 */    0xce, /* 11001110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 79 0x4f 'O' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 80 0x50 'P' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xfc, /* 11111100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x7c, /* 01111100 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0x60, /* 01100000 */    0xf0, /* 11110000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 81 0x51 'Q' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xd6, /* 11010110 */    0xde, /* 11011110 */    0x7c, /* 01111100 */    0x0c, /* 00001100 */    0x0e, /* 00001110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 82 0x52 'R' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xfc, /* 11111100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x7c, /* 01111100 */    0x6c, /* 01101100 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0xe6, /* 11100110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 83 0x53 'S' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x60, /* 01100000 */    0x38, /* 00111000 */    0x0c, /* 00001100 */    0x06, /* 00000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 84 0x54 'T' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7e, /* 01111110 */    0x7e, /* 01111110 */    0x5a, /* 01011010 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x3c, /* 00111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 85 0x55 'U' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 86 0x56 'V' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x6c, /* 01101100 */    0x38, /* 00111000 */    0x10, /* 00010000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 87 0x57 'W' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xd6, /* 11010110 */    0xd6, /* 11010110 */    0xd6, /* 11010110 */    0xfe, /* 11111110 */    0xee, /* 11101110 */    0x6c, /* 01101100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 88 0x58 'X' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x6c, /* 01101100 */    0x7c, /* 01111100 */    0x38, /* 00111000 */    0x38, /* 00111000 */    0x7c, /* 01111100 */    0x6c, /* 01101100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 89 0x59 'Y' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x66, /* 01100110 */    0x3c, /* 00111100 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x3c, /* 00111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 90 0x5a 'Z' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xfe, /* 11111110 */    0xc6, /* 11000110 */    0x86, /* 10000110 */    0x0c, /* 00001100 */    0x18, /* 00011000 */    0x30, /* 00110000 */    0x60, /* 01100000 */    0xc2, /* 11000010 */    0xc6, /* 11000110 */    0xfe, /* 11111110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 48 0x30 '0' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x38, /* 00111000 */    0x6c, /* 01101100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xd6, /* 11010110 */    0xd6, /* 11010110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x6c, /* 01101100 */    0x38, /* 00111000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 49 0x31 '1' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x18, /* 00011000 */    0x38, /* 00111000 */    0x78, /* 01111000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x18, /* 00011000 */    0x7e, /* 01111110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 50 0x32 '2' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0x06, /* 00000110 */    0x0c, /* 00001100 */    0x18, /* 00011000 */    0x30, /* 00110000 */    0x60, /* 01100000 */    0xc0, /* 11000000 */    0xc6, /* 11000110 */    0xfe, /* 11111110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 51 0x33 '3' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x3c, /* 00111100 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 52 0x34 '4' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x0c, /* 00001100 */    0x1c, /* 00011100 */    0x3c, /* 00111100 */    0x6c, /* 01101100 */    0xcc, /* 11001100 */    0xfe, /* 11111110 */    0x0c, /* 00001100 */    0x0c, /* 00001100 */    0x0c, /* 00001100 */    0x1e, /* 00011110 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 53 0x35 '5' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xfe, /* 11111110 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xfc, /* 11111100 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 54 0x36 '6' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x38, /* 00111000 */    0x60, /* 01100000 */    0xc0, /* 11000000 */    0xc0, /* 11000000 */    0xfc, /* 11111100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 55 0x37 '7' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0xfe, /* 11111110 */    0xc6, /* 11000110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x0c, /* 00001100 */    0x18, /* 00011000 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0x30, /* 00110000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 56 0x38 '8' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 57 0x39 '9' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0x7e, /* 01111110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x06, /* 00000110 */    0x0c, /* 00001100 */    0x78, /* 01111000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 64 0x40 '@' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x7c, /* 01111100 */    0xc6, /* 11000110 */    0xc6, /* 11000110 */    0xde, /* 11011110 */    0xde, /* 11011110 */    0xde, /* 11011110 */    0xdc, /* 11011100 */    0xc0, /* 11000000 */    0x7c, /* 01111100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    /* 35 0x23 '#' */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x6c, /* 01101100 */    0x6c, /* 01101100 */    0xfe, /* 11111110 */    0x6c, /* 01101100 */    0x6c, /* 01101100 */    0x6c, /* 01101100 */    0xfe, /* 11111110 */    0x6c, /* 01101100 */    0x6c, /* 01101100 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */    0x00, /* 00000000 */};/* 主函数*/int main(void){int x, y;//打开设备驱动fbfd = open("/dev/fb0",O_RDWR);if (fbfd<0){printf("Open error!\n");return -1;}//获取屏幕可变参数if(ioctl(fbfd,FBIOGET_VSCREENINFO,&varinfo)){printf("Reading var error!\n");return -1;}//获取屏幕固定参数if(ioctl(fbfd,FBIOGET_FSCREENINFO,&fixinfo)) {printf("Reading fix error!\n");return -1;} //计算显存大小/* __u32(unsigned int) xres:横向可视范围 __u32(unsigned int) yres:纵向可视范围 __u32(unsigned int) bits_per_pixel:每一像素的bit数bits_per_pixel/8 为一个像素占用的字节数*/screensize = varinfo.xres * varinfo.yres * varinfo.bits_per_pixel/8;   printf("xbit:%d   ybit: %d\n",varinfo.xres,varinfo.yres);printf("bits_per_pixel: %d\n",varinfo.bits_per_pixel);printf("screensize=%d\n",screensize);//映射屏幕缓冲区到用户地址空间fbp = (unsigned short *)mmap(0,screensize,PROT_READ|PROT_WRITE, MAP_SHARED,fbfd,0);if ((int)fbp == -1){printf("Mmap error!\n");return -1;}//清屏memset(fbp,0,screensize);lcd_Disp_Char(varinfo.xres/2,varinfo.yres/2,'a');lcd_Disp_Str(0,0,"abc 123");sleep(5);//读写缓冲区,即在屏幕上显示内容for (y=0;y<varinfo.yres/2;y++){    for (x=0;x<varinfo.xres/2;x++){*(fbp + y*varinfo.xres + x) = RED;}}//释放缓冲区,关闭设备munmap(fbp,screensize);close(fbfd);return 0;}/* LCD显示一个点*/void lcd_Disp_Dot(int x,int y){*(fbp + y*varinfo.xres + x) = RED;}/* LCD显示一个字符 0: ' ' 1~26: a~z 27~52:A~Z 53~63:0~9 64:@ 65:#*/void lcd_Disp_Char(int x,int y,char ch){int i, j;char *dots;if(ch>='a' && ch<='z'){dots = (char *) &font_8x16[(ch-'a'+1)*16];}else if(ch>='A' && ch<='Z'){dots = (char *) &font_8x16[(ch-'A'+27)*16];}else if(ch>='0' && ch<='9'){dots = (char *) &font_8x16[(ch-'0'+53)*16];}else if(ch == '@'){dots = (char *) &font_8x16[64*16];}else if(ch == '#'){dots = (char *) &font_8x16[65*16];}else{dots = (char *) &font_8x16[0];}for(i=0;i<16;i++){//画字符字模第i行dots[i]for(j=7;j>=0;j--){if(dots[i]&(1<<j))lcd_Disp_Dot(x+7-j, y+i);}}}/* LCD显示一个字符串*/void lcd_Disp_Str(int x,int y,char* str){while(*str != 0){lcd_Disp_Char(x, y, *str);x += 8;str++;}}
0 0
原创粉丝点击