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

📄 lcd_12232f.h.bak

📁 自己开发的uclinux下RT12232F液晶的驱动程序
💻 BAK
字号:

#ifndef LCD_12232F_DEV_H
#define LCD_12232F_DEV_H

#include <linux/ioctl.h>


#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 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_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内容
#define    LCD_CMD_SHIFT_RIGHT  0x04        //LCD_CMD_SHIFT | LCD_CMD_ENABLE_SHIFT_RIGHT

#define    LCD_CMD_FUNC   0x20              //功能设定
#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 0x06          // 在选择完扩充指令后可以使用

#define    LCD_CMD_RAMCGR 0x40              // 将CGRAM地址设定到IR寄存器
#define    LCD_CMD_RAMDDR 0x80              // 将DDRAM地址设定到IR寄存器

#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 _IOR 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/RT12232F"
#define DEVICE_NAME "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);


/*
 *在<asm-nios2nommu/uaccess.h>,对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

⌨️ 快捷键说明

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