www.pudn.com > LCDRT12232F.rar > lcd_12232F.h
#ifndef LCD_12232F_DEV_H #define LCD_12232F_DEV_H #include#define MAJOR_NUM 250 #define ADR_LCD_COMMAND na_lcd_16207 #define ADR_LCD_DATA (na_lcd_16207 + 8) #define ADR_LCD_LINE1_OFFSET 0x80 #define ADR_LCD_LINE2_OFFSET 0x90 #define ADR_LCD_LINE3_OFFSET 0xA0 #define ADR_LCD_LINE4_OFFSET 0xB0 #define BUF_LEN 16 #define LCD_CHARS_PER_LINE 16 /* * 创建ioctl命令号 */ #define IOCTL_WRITE _IOR(MAJOR_NUM, 0, char *) #define IOCTL_READ _IOR(MAJOR_NUM, 1, char *) #define IOCTL_LCD_ON _IOR(MAJOR_NUM, 2, char *) #define IOCTL_LCD_OFF _IOR(MAJOR_NUM, 3, char *) #define IOCTL_LCD_CLEAR _IOR(MAJOR_NUM, 4, char *) #define IOCTL_LCD_RESET _IOR(MAJOR_NUM, 5, char *) #define IOCTL_LCD_HOME _IOR(MAJOR_NUM, 6, char *) #define IOCTL_LCD_CURSOR_LEFT _IOR(MAJOR_NUM, 7, char *) #define IOCTL_LCD_CURSOR_RIGHT _IOR(MAJOR_NUM, 8, char *) #define IOCTL_LCD_CURSOR_ON _IOR(MAJOR_NUM, 9, char *) #define IOCTL_LCD_DISP_SHOW_ON _IOR(MAJOR_NUM, 10, char *) #define IOCTL_LCD_CURSOR_GET _IOR(MAJOR_NUM, 11, char *) #define IOCTL_LCD_CURSOR_SET _IOR(MAJOR_NUM, 12, char *) #define IOCTL_LCD_GET_CURSOR_POS _IOR(MAJOR_NUM, 13, char *) #define IOCTL_LCD_SET_CURSOR_POS _IOR(MAJOR_NUM, 14, char *) #define IOCTL_LCD_CURSOR_BLINK _IOR(MAJOR_NUM, 15, char *) #define IOCTL_LCD_ROW1_BLINK _IOR(MAJOR_NUM, 16, char *) #define IOCTL_LCD_DISP_LEFT _IOR(MAJOR_NUM, 17, char *) #define IOCTL_LCD_DISP_RIGHT _IOR(MAJOR_NUM, 18, char *) #define IOCTL_LCD_DISP_ON _IOR(MAJOR_NUM, 19, char *) #define IOCTL_LCD_DISP_OFF _IOR(MAJOR_NUM, 20, char *) #define IOCTL_LCD_LINE1 _IOR(MAJOR_NUM, 21, char *) #define IOCTL_LCD_LINE2 _IOR(MAJOR_NUM, 22, char *) #define IOCTL_LED_NORMAL _IOR(MAJOR_NUM, 23, char *) #define IOCTL_LCD_BACKGROUND_LED_OFF _IOR(MAJOR_NUM, 24, char *) #define IOCTL_LCD_WARNING_LED_ON _IOR(MAJOR_NUM, 25, char *) // RT12232F LCD 控制指令 #define LCD_CMD_CLEAR 0x01 //清除显示指令 #define LCD_CMD_HOME 0x02 //地址归位指令 #define LCD_CMD_MODES 0x04 //模式设定指令 #define LCD_CMD_MODES_SHIFT 0x10 //LCD_CMD_MODES | LCD_CMD_ENABLE_SHIFT 游标右移,AC加1;否则,光标左移,AC减1 #define LCD_CMD_MODES_SHOW_SHIFT 0x01 //image shift enable #define LCD_CMD_ONOFF 0x08 // 显示状态开关 #define LCD_CMD_ONOFF_BLINK 0x01 //LCD_CMD_ONOFF | LCD_CMD_ONOFF_BLINK 游标位置反白使能 #define LCD_CMD_ONOFF_CURSOR 0x02 //LCD_CMD_ONOFF | LCD_CMD_ONOFF_CURSOR 游标开关使能 #define LCD_CMD_ONOFF_DISP 0x04 //LCD_CMD_ONOFF | LCD_CMD_ONOFF_DISP 整体显示使能 #define LCD_CMD_SHIFT 0x10 //游标或显示移位控制,不改变DDRAM内容,AC dont't change #define LCD_CMD_SHIFT_RIGHT 0x04 //LCD_CMD_SHIFT | LCD_CMD_ENABLE_SHIFT_RIGHT #define LCD_CMD_SHIFT_SHOW_RIGHT 0x08 //image shift enable #define LCD_CMD_FUNC 0x20 //功能设定,need set width,then set RE #define LCD_CMD_FUNC_WIDTH 0x10 // LCD_CMD_FUNC | LCD_CMD_FUNC_WIDTH 8位数据,否则为4位数据 #define LCD_CMD_FUNC_EXPANSION 0x04 // LCD_CMD_FUNC | LCD_CMD_FUNC_EXPANSION,扩充指令操作,否则基本指令操作 #define LCD_CMD_ROW1_BLINK 0x04 // 在选择完扩充指令后可以使用 #define LCD_CMD_ROW2_BLINK 0x05 // 在选择完扩充指令后可以使用 #define LCD_CMD_RAMCGR 0x40 // 将CGRAM地址设定到IR寄存器 #define LCD_CMD_RAMDDR 0x80 // 将DDRAM地址设定到IR寄存器 #define LCD_BUSY 0x80 #define LCD_COM_RESET 0x30 //在软件初始化时使用,在此之前不能检查BF标志 #define LCD_INTERFACE 0x10 // interface width;1 (8 BITS)/0 (4BITS) #define LCD_NUMROWS 0x08 // display rows; 1 (2 ROWS)/0 (1ROW) #define LCD_PIXEL 0x04 // character pixel; 1(5x10 dots)/0 (5x7 dot) #define LCD_MOVE 0x02 // character move direction; 1(increment)/0(decrement) #define LCD_SHIFT 0x01 // move character with display shift; 1(shift) 0(no shift) #define LCD_DISP_SHIFT 0x08 // action after character; 1(display shift)/0(character shift) #define LED_STATE_NORMAL 0xff //菜单架构 //一级菜单 #define nSHE_BEI_ZHUANG_TAI 1 #define nBEN_JI_SHE_ZHI 2 #define nTE_SHU_MING_LING 3 //低级菜单 #define nIP_ADDRESS_STATE 11 #define nIP_ADDRESS_SHOW 110 #define nSYSTEM_TIME_STATE 12 #define nSYSTEM_TIME_SHOW 120 #define nIP_ADDRESS_SET 21 #define nIP_ADDRESS 210 #define nSYSTEM_TIME_SET 22 #define nSYSTEM_TIME 220 /* * The name of the device file */ #define DEVICE_FILE_NAME "/dev/lcd_RT12232F" #define DEVICE_NAME "lcd_RT12232F" /* * The function to write to nios */ int WriteNios(unsigned long addr, unsigned long value); /* * The function to read from nios */ int ReadNios(unsigned long addr, unsigned long * pValue); /* *在 ,对get_user做了预处理定义,定义如下: #define get_user(x, ptr) \ ({ \ int __gu_err = 0; \ typeof(*(ptr)) __gu_val = 0; \ switch (sizeof(*(ptr))) { \ case 1: \ case 2: \ case 4: \ case 8: \ memcpy(&__gu_val, ptr, sizeof (*(ptr))); \ break; \ default: \ __gu_val = 0; \ __gu_err = __get_user_bad(); \ break; \ } \ (x) = __gu_val; \ __gu_err; \ }) */ #endif