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

📄 i2c-test.c

📁 cmmb if101 linux driver sample
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/ioctl.h>#include <fcntl.h>#include <unistd.h>  #include <signal.h>#include <string.h>#include "innoaccess.h"void sighandler(int signo){    	if (signo==SIGINT){		printf("SIGINT occurs.\r\n");	}	return;}int main(int argc, char **argv){	int fd;	int ret;	int i;	inno_reg_t reg_data={0};	unsigned char bank = 0;	char* endptr;	struct sigaction action;	printf("argc == %d", argc);	if(argc < 3){		printf("usage:\n");		printf("read register data:\t%s -r reg\r\n", argv[0]);		printf("write register data:\t%s -w reg data\r\n", argv[0]);		printf("read bank registers data:\t%s -br bank\r\n", argv[0]);	//	return 0;	}	printf("DEV_NAME = %s", DEV_NAME);	fd = open(DEV_NAME, O_RDWR);	if(fd == -1){		printf("open failed.\r\n");		return -1;	}    memset(&action, 0, sizeof(action));    	action.sa_handler = sighandler;	action.sa_flags = 0;	sigaction(SIGINT, &action, NULL);	if(strcmp(argv[1], "-r")==0){		reg_data.reg = (unsigned short)strtoul(argv[2], &endptr, 0);		printf("R%x ", reg_data.reg);		ret = ioctl(fd, INNO_READ_REG, (long*)&reg_data);		printf("= %x.\n",  reg_data.data);	}else if(strcmp(argv[1], "-br")==0){		bank = (unsigned short)strtoul(argv[2], &endptr, 0);		for(i=0; i<0xFF; i++){			reg_data.reg = REG_ADDR(bank, i);			printf("R%x ", reg_data.reg);			ret = ioctl(fd, INNO_READ_REG, (long*)&reg_data);			printf("= %x.\n", reg_data.data);		}	}else if(strcmp(argv[1], "-w")==0){		reg_data.reg = (unsigned short)strtoul(argv[2], &endptr, 0);		reg_data.data = (unsigned char)strtoul(argv[3], &endptr, 0);		ret = ioctl(fd, INNO_WRITE_REG, (long*)&reg_data); 	}printf("close..\r\n");		close(fd);	return 0;}

⌨️ 快捷键说明

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