资源简介
自己写的基于linux mpu6050的iic驱动代码 已在开发板上运行过了
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include “mpu6050.h“
struct mpu6050_device{
struct i2c_client *mpu6050_client;
struct cdev cdev;
}
static struct mpu6050_device *mpu6050;
static int major;
static struct class *class;
//static struct device *dev;
static const struct i2c_device_id mpu6050_id[] = {
{ “mpu6050“ 0 }
{ }
};
static int mpu6050_read (struct i2c_client *client unsigned char reg)
{
/*传入buf[0]:addr*/
struct i2c_msg msg[2];
unsigned char reg_addrdata;
//copy_from_user(®_addrbuf1);
msg[0].addr=client->addr;
msg[0].flags =0;
msg[0].len =1;
msg[0].buf=®_addr;
msg[1].addr =client->addr;
msg[1].flags=I2C_M_RD;
msg[1].len=1;
msg[1].buf=&data;
i2c_transfer(client->adaptermsg2);
//i2c_smbus_read_byte_data(mpu6050_clientaddr);
// copy_to_user(buf&data1);
return data;
}
static int mpu6050_write (struct i2c_client *client unsigned char reg unsigned char val)
{
/*buf[0] addr
*buf[1] data
*/
struct i2c_msg msg;
unsigned char buf[2];
buf[0]=reg;
buf[1]=val;
//unsigned char reg_addrdata;
//unsigned char ker_buf[2];
//copy_from_user(ker_bufbuf2);
//reg_addr=ker_buf[0];
//data=ker_buf[1];
msg.addr=client->addr;
msg.flags=0;
msg.buf =buf;
msg.len=2;
i2c_transfer(client->adapter&msg1);
return 0;
}
static int mpu6050_ioctl(struct file *file unsigned int cmdunsigned long arg)
{
union mpu6050_data data;
struct i2c_client *client = mpu6050->client;
switch(cmd) {
case GET_ACCEL:
data.accel.x = mpu6050_read_byte(client ACCEL_XOUT_L);
data.accel.x |= mpu6050_read_byte(client ACCEL_XOUT_H) << 8;
data.accel.y = mpu6050_read_byte(client ACCEL_YOUT_L);
data.accel.y |= mpu6050_read_byte(client ACCEL_YOUT_H) << 8;
data.accel.z = mpu6050_read_byte(client ACCEL_ZOUT_L);
data.accel.z |= mpu6050_read_byte(client ACCEL_ZOUT_H) << 8;
break;
case GET_GYRO:
data.gyro.x = mpu6050_read_byte(client GYRO_XOUT_L);
data.g
- 上一篇:linux 配置文件读写C
- 下一篇:编译原理优先算法代码,及详细实验报告
相关资源
- linux 配置文件读写C
- PT6523和PT6524 LCD驱动芯片驱动程序
- linux0.11内核源码
- ibm x3300 m4 2008 RAID驱动
- linux进程监控和守护进程的程序
- ADS1292驱动程序 STM32 2020省TI杯电赛资
- 51单片机 RTL8019AS 网卡驱动程序(有
- STM32F103读取MPU6050原始数据
- ps_2键盘驱动
- rocky凝思操作系统ISO镜像刻录到U盘里
- ros读取mpu6050数据
- STM32F4驱动线阵CCD——TCD1304
- stm32 IO口方式驱动WS2813B
- 非阻塞式AT指令发送接收工程,可驱动
- hd4000显卡驱动分享,10.12全系可用
- FM24C04驱动程序并带有测试程序
- linux按键测试,获取按键状态
- driver-hub
- Linux基本命令操作实验报告
- ADS1115驱动程序
- HoRNDIS.kext 黑苹果--安卓USB共享网络给
- 学习用4.0版Linux下Zynq的axitimer中断驱动
- ros的urdf机器人模型功能包
- ROS创建工作空间代码我写的博客配套
- 2020大数据面试题总汇
- MPU6050移植DMP库
- ADS8320驱动代码.rar
- ADS1220驱动代码
- Linux实验1_常用命令应用.doc
- 树莓派用I2C读取mpu9250代码
评论
共有 条评论