⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 (绝对原创)Linux写的GB2312字库程序
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <fcntl.h>#include <string.h>#include "lcd.h"#include "ap_font.h"//struct lcd_dev *lcd_devp;#define get_font_size(x,y)	((x)*(y)/8)int testdev=-1;int main(int argc,char **argv){	int i;	unsigned ret;		unsigned char test_type;	const struct ap_font_desc *ap_font;	unsigned char string1[] = {0xce,0xd2,0xba,0xcd,0xc4,0xe3}; //wo he ni -- len = 3	unsigned char string2[] = {0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1}; //ni hao, bei jing! len =6	unsigned char string3[] = {0xb1,0xb1,0xbe,0xa9,0xa3,0xa1};	unsigned char string4[] = {				   0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1,				   0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1,				   0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1}; //18 word	unsigned char string5[] = {				   0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1,				   0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1,				   0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1,				   0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1,				   0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1,				   0xc4,0xe3,0xba,0xc3,0xa3,0xac,0xb1,0xb1,0xbe,0xa9,0xa3,0xa1}; //36 word	unsigned char x0,y0,len;	//printf("function parameter:\n");	/*	printf("argc:%d\n", argc);	for(i=0;i<argc;i++){		printf("argv[%d]:%s\n", i, argv[i]);	}	*/	testdev = open("/dev/lcddev0",O_RDWR);	if (testdev == -1){		printf("can't open lcddev.\n");		exit(0);	}        ap_font = ap_find_font("GB2312_16x16");        if (NULL == ap_font) {        	printf("no such font.\n");         }	//init api frame buffer and lcd_dev				lcd_api_init(ap_font,0);	//lcd_full_scr(testdev);	test_type=(unsigned char)strtoul(argv[1],0,0);	switch( test_type){		case 0 :			if (ioctl(testdev, LCD_RESET, (unsigned long)0)){				printf("call ioctl error.\n");			}			break;		case 30: //clear screen			/*if (ioctl(testdev, LCD_CLEAR, (unsigned long)0)){				printf("call ioctl error.\n");			}*/			lcd_clear_scr(testdev);		break;		case 31://screen full			/*if (ioctl(testdev, LCD_FULL, (unsigned long)0)){				printf("call ioctl error.\n");			}*/			lcd_full_scr(testdev);		break;		case 32:		break;				case 40:                	y0=(unsigned char)strtoul(argv[2],0,0);			x0=(unsigned char)strtoul(argv[3],0,0);                	len=(unsigned char)strtoul(argv[4],0,0);			ret = lcd_write_chars(testdev, y0, x0, string1, len);					break;				case 41:                	y0=(unsigned char)strtoul(argv[2],0,0);			x0=(unsigned char)strtoul(argv[3],0,0);                	len=(unsigned char)strtoul(argv[4],0,0);			ret = lcd_write_chars(testdev, y0, x0, string2, len);		break;					case 42:                	y0=(unsigned char)strtoul(argv[2],0,0);			x0=(unsigned char)strtoul(argv[3],0,0);                	len=(unsigned char)strtoul(argv[4],0,0);				ret = lcd_write_chars(testdev, y0, x0, string3, len);		break;				case 50:                	y0=(unsigned char)strtoul(argv[2],0,0);			x0=(unsigned char)strtoul(argv[3],0,0);                	len=(unsigned char)strtoul(argv[4],0,0);			lcd_full_scr(testdev);			ret = lcd_write_chars(testdev, y0, x0, string4, len);		break;		case 51:                	y0=(unsigned char)strtoul(argv[2],0,0);			x0=(unsigned char)strtoul(argv[3],0,0);                	len=(unsigned char)strtoul(argv[4],0,0);			lcd_full_scr(testdev);			ret = lcd_write_chars(testdev, y0, x0, string5, len);		break;		default:		break;	}		lcd_api_close();	close(testdev);	//printf("lcd_test end.\n");	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -