|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我的程序:利用I2C协议对加速度模块进行读写操作#include <stdio.h>#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <errnos.h>
#include <sys/ioctl.h>
#define ADDRESS 0x3A //加速度MMA7455的地址
#define I2C_SLAVE 0x0703
#define I2C_TENBIT 0x0704
int main()
{
int fd;
int uiRet;
char r_buf[2];
r_buf[0]=0x00;
fd=open("/dev/i2c-1",O_RDWR);
if(fd<0)
{
perror("open i2c failed");
return -1;
exit(1);
}
ioctl(fd,I2C_TENBIT,0);
uiRet=ioctl(fd,I2C_SLAVE,ADDRESS>>1);
if(uiRet<0)
{
printf("setenv address faile ret:%x\n",uiRet);
return -1;
exit(0);
}
int a=write(fd,"0x06",1);//0x06是加速度模块的X轴寄存器的地址
int b=read(fd,r_buf,1);
perror("error");//测试用的,可以去掉
printf("a is %d,b is $d \n",a,b);
printf("data is %x\n",r_buf);
close(fd);
}
运行出现问题:error:I/O error
a is -1,b is -1
data is be822984
请问各位大神有没有知道原因的,急求!!!!!!!!!!!!!!!! |
|