📄 lcd_12232f.h.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 + -