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

📄 test_wg_full.c

📁 linux 2.4 的用gpio 模拟韦根输出的驱动!与标准韦根设备对接.反应灵敏!
💻 C
字号:
#include <stdio.h>     
#include <stdlib.h>
#include <sys/ioctl.h>  
#include <unistd.h>
#include <fcntl.h>

#define DEVICE_WG "/dev/wgout"

unsigned char wg_hid;
unsigned short wg_pid;
/*
调用说明:
wg_buff[3]
wg_buff[0]:存放HID
wg_buff[1]:存放PID低位
wg_buff[2]:存放PID高位
接收端:
会先接收到  HID 高到--->PID 高位--->

*/

int main(int argc,char *argv[])
{
	int fd; 
	int val=-1;
	int ret = 0; 
	int i;
	unsigned char wg_buff[3]; 

  if(argc<4)
  {
  	  wg_hid=0x55;
  	  printf("hid is 0x%02x \n",wg_hid);
      wg_pid=0xaaaa;
      printf("pid is 0x%02x\n",wg_pid);
  }
  else 
  {
  	/*
  	 wg_hid=atoi(argv[1]);
  	 printf("hid is %d \n",wg_hid);
  	 wg_pid=(atoi(argv[2])<<8)+atoi(argv[3]);
  	 printf("pid is %d \n",wg_pid);
  	 */
  	  wg_hid=0x55;
  	  printf("hid is 0x%02x \n",wg_hid);
      wg_pid=0xaaaa;
      printf("pid is 0x%02x\n",wg_pid);
  }
	//总结:应用软件只管按地址用标准函数打开设备文件,系统会自动调用
	if((fd=open(DEVICE_WG,O_RDONLY | O_NONBLOCK))<0)
	{
		perror("can not open device");
		exit(1);
	}

	while(1)
	{
		printf("\n1:wg_output 0xff,2:out_put 0x00 3:out_put 0x55 4:0xaa 0:quit :");//打印到PC端通信界面,如超级终端
		scanf("%d",&val);
		if(val==1) 
		{
			//while(1)
			//{
			wg_buff[0]=0xff;
			wg_buff[1]=0xff;
			wg_buff[2]=0xff;
			ret =ioctl(fd,1,wg_buff);
			//sleep(1);
			//}
		}
		else if(val==2) 
		{
			//while(1)
			//{
			wg_buff[0]=0x12;
			wg_buff[1]=0x34;
			wg_buff[2]=0x56;
			ret =ioctl(fd,1,wg_buff);
			//sleep(1);
			//}
		}
		else if(val==3) 
		{
			//while(1)
			//{
			wg_buff[0]=0x55;
			wg_buff[1]=0x55;
			wg_buff[2]=0x55;
			ret =ioctl(fd,1,wg_buff);
			//sleep(1);
			//}
		}
		else if(val==4) 
		{
			//while(1)
			//{
			wg_buff[0]=0xaa;
			wg_buff[1]=0xaa;
			wg_buff[2]=0xaa;
			ret =ioctl(fd,1,wg_buff);
			//sleep(1);
			//}
		}
		else if(val==0) {
			close(fd);
			exit(0);
		}
	}
	return 0;
}

⌨️ 快捷键说明

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