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

📄 lcddrv1_user.c

📁 lcddrv1.c 为驱动源程序 lcddrv1_user.c为应用程序代码 功能: 在ioctl中区分所写的数据是命令
💻 C
字号:
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <signal.h>
#include <sys/ioctl.h>

#define LCD_WRITE_COM 0x4800
int main(void)
{ 
  int fd,count,i=0;
 // unsigned int lcdcom,lcddata;
  unsigned int lcd_addr_data;
 // int rgcon;
  int *spinfo=(int *)malloc(4);

  if((fd=open("/dev/lcddrv",O_RDWR))==-1)
     {
         perror("open error");
         exit(1);
  
     }
 for(;;)
    {
       i++;
    /*  if(ioctl(fd,LCD_WRITE_COM,*spinfo)!=0)
        { perror("ioctl error");
           exit(1);
        }*/
      // lcdcom=0x0080;
    /* if((count=write(fd,(char *)&lcdcom,4))!=4)
        {
        perror("write error");
        exit(1);
        }*/
    lcd_addr_data=0x0094bdda;//0xbdda;//0xb7d0;  节  0094是地址,bdda是显示的字的代码
     if((count=write(fd,(char *)&lcd_addr_data,4))!=4)
        {
        perror("write error");
        exit(1);
        }
     sleep(1);
   
    lcd_addr_data=0x0087dfc8;//0xbdda;//0xb7d0;xia 呷
     if((count=write(fd,(char *)&lcd_addr_data,4))!=4)
        {
        perror("write error");
        exit(1);
        }
     sleep(1);
     
    lcd_addr_data=0x009ab4f0;//0xbdda;//0xb7d0;da 答
     if((count=write(fd,(char *)&lcd_addr_data,4))!=4)
        {
        perror("write error");
        exit(1);
        }
    sleep(1);

     
      if(ioctl(fd,LCD_WRITE_COM,*spinfo)!=0)
        { perror("ioctl error");
           exit(1);
        }

       
    lcd_addr_data=0x0001;//0xbdda;//0xb7d0;da 清屏
     if((count=write(fd,(char *)&lcd_addr_data,4))!=4)
        {
        perror("write error");
        exit(1);
        }
      
     printf("test ok  %d times!\n",i);
     sleep(1);
   }
  close(fd);
  return 0;
}

⌨️ 快捷键说明

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