关键词不能为空

当前您在: 主页 > 英语 >

MPU9250配置例程

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 18:48
tags:

-

2021年2月1日发(作者:闪动)


MPU9250



SPI


读取例程,


由一个忘了什么来源的程序改成,


只需要改


SPI



CS


的宏定 义,


加上延时函数,


就可以使用,亲测可用,

< br>发上来给那些找不到例程的朋友,


配置后的状态在


另一个 文档里,名为


MPU9250


刷新速率和单位,程序如有侵权等 ,请联系





//MPU9250


的陀螺仪单位转换系数:



//#define MPU9250_Gyro_FS1000 32.8



//MPU9250


的加速度计单位 转换系数:



//#define Acc_FS2g



1671.84//to m/ss


//MPU9250


磁力计的单位转换系数:



//#define Mega_FS16BIT_Ga



6.83



/*1uT-10mGass*/


static s16 MPU9250_AK8963_ASA[3] = {0, 0, 0};//1T=10000GASS 1uT=0.01GASS


//


定义


MPU9250


内部地址



//// ////////////////////////////////////////////////// ////////////////////


//Register Map for Gyroscope and Accelerometer


#define MPU9250_SELF_TEST_X_GYRO









0x00


#define MPU9250_SELF_TEST_Y_GYRO









0x01


#define MPU9250_SELF_TEST_Z_GYRO









0x02



#define MPU9250_SELF_TEST_X_ACCEL








0x0D


#define MPU9250_SELF_TEST_Y_ACCEL








0x0E


#define MPU9250_SELF_TEST_Z_ACCEL








0x0F



#define MPU9250_XG_OFFSET_H














0x13


#define MPU9250_XG_OFFSET_L














0x14


#define MPU9250_YG_OFFSET_H














0x15


#define MPU9250_YG_OFFSET_L














0x16


#define MPU9250_ZG_OFFSET_H














0x17


#define MPU9250_ZG_OFFSET_L














0x18


#define MPU9250_SMPLRT_DIV















0x19


/


/


陀螺仪采样率,典型值:


0x07(125Hz)


#define MPU9250_CONFIG



















0x1A


//


低通滤波频率,


典型值:


0x06(5Hz)


#define MPU9250_GYRO_CONFIG














0x1B


//


陀螺仪自检及测量范围 ,典型值:


0x18(


不自检,


200 0deg/s)


#define MPU9250_ACCEL_CONFIG













0x1C


//


加速计自检、


测量范围及高通滤波


频率,典型值:


0x01(


不自检,


2G



5Hz)


#define MPU9250_ACCEL_CONFIG2












0x1D


#define MPU9250_LP_ACCEL_ODR













0x1E


#define MPU9250_WOM_THR


















0x1F



#define MPU9250_FIFO_EN


















0x23


#define MPU9250_I2C_MST_CTRL













0x24


#define MPU9250_I2C_SLV0_ADDR












0x25


#define MPU9250_I2C_SLV0_REG













0x26


#define MPU9250_I2C_SLV0_CTRL












0x27


#define MPU9250_I2C_SLV1_ADDR












0x28


#define MPU9250_I2C_SLV1_REG













0x29


#define MPU9250_I2C_SLV1_CTRL












0x2A


#define MPU9250_I2C_SLV2_ADDR












0x2B


#define MPU9250_I2C_SLV2_REG













0x2C


#define MPU9250_I2C_SLV2_CTRL












0x2D


#define MPU9250_I2C_SLV3_ADDR












0x2E


#define MPU9250_I2C_SLV3_REG













0x2F


#define MPU9250_I2C_SLV3_CTRL












0x30


#define MPU9250_I2C_SLV4_ADDR












0x31


#define MPU9250_I2C_SLV4_REG











#define MPU9250_I2C_SLV4_DO












#define MPU9250_I2C_SLV4_CTRL










#define MPU9250_I2C_SLV4_DI












#define MPU9250_I2C_MST_STATUS








#define MPU9250_INT_PIN_CFG












#define MPU9250_INT_ENABLE













#define MPU9250_INT_STATUS













#define MPU9250_ACCEL_XOUT_H










#define MPU9250_ACCEL_XOUT_L










#define MPU9250_ACCEL_YOUT_H










#define MPU9250_ACCEL_YOUT_L










#define MPU9250_ACCEL_ZOUT_H










#define MPU9250_ACCEL_ZOUT_L










#define MPU9250_TEMP_OUT_H











#define MPU9250_TEMP_OUT_L











#define MPU9250_GYRO_XOUT_H










#define MPU9250_GYRO_XOUT_L











#define MPU9250_GYRO_YOUT_H










#define MPU9250_GYRO_YOUT_L











#define MPU9250_GYRO_ZOUT_H










#define MPU9250_GYRO_ZOUT_L











#define MPU9250_EXT_SENS_DATA_00






#define MPU9250_EXT_SENS_DATA_01






#define MPU9250_EXT_SENS_DATA_02






#define MPU9250_EXT_SENS_DATA_03






#define MPU9250_EXT_SENS_DATA_04






#define MPU9250_EXT_SENS_DATA_05






#define MPU9250_EXT_SENS_DATA_06






#define MPU9250_EXT_SENS_DATA_07






#define MPU9250_EXT_SENS_DATA_08






#define MPU9250_EXT_SENS_DATA_09






#define MPU9250_EXT_SENS_DATA_10






#define MPU9250_EXT_SENS_DATA_11






0x32



0x33


0x34


0x35



0x36



0x37



0x38


0x3A




0x3B



0x3C




0x3D



0x3E




0x3F



0x40




0x41




0x42




0x43




0x44




0x45




0x46




0x47




0x48



0x49



0x4A



0x4B



0x4C



0x4D



0x4E



0x4F



0x50



0x51



0x52



0x53



0x54






























































#define MPU9250_EXT_SENS_DATA_12









0x55


#define MPU9250_EXT_SENS_DATA_13









0x56


#define MPU9250_EXT_SENS_DATA_14









0x57


#define MPU9250_EXT_SENS_DATA_15









0x58


#define MPU9250_EXT_SENS_DATA_16









0x59


#define MPU9250_EXT_SENS_DATA_17









0x5A


#define MPU9250_EXT_SENS_DATA_18









0x5B


#define MPU9250_EXT_SENS_DATA_19









0x5C


#define MPU9250_EXT_SENS_DATA_20









0x5D


#define MPU9250_EXT_SENS_DATA_21







#define MPU9250_EXT_SENS_DATA_22







#define MPU9250_EXT_SENS_DATA_23








#define MPU9250_I2C_SLV0_DO












#define MPU9250_I2C_SLV1_DO












#define MPU9250_I2C_SLV2_DO












#define MPU9250_I2C_SLV3_DO












#define MPU9250_I2C_MST_DELAY_CTRL





#define MPU9250_SIGNAL_PATH_RESET






#define MPU9250_MOT_DETECT_CTRL







#define MPU9250_USER_CTRL














#define MPU9250_PWR_MGMT_1











#define MPU9250_PWR_MGMT_2












#define MPU9250_FIFO_COUNTH











#define MPU9250_FIFO_COUNTL












#define MPU9250_FIFO_R_W















#define MPU9250_WHO_AM_I














#define MPU9250_XA_OFFSET_H












#define MPU9250_XA_OFFSET_L













#define MPU9250_YA_OFFSET_H












#define MPU9250_YA_OFFSET_L













#define MPU9250_ZA_OFFSET_H












#define MPU9250_ZA_OFFSET_L












//


#define MPU9250_I2C_READ 0x80



//Magnetometer register maps


#define MPU9250_AK8963_WIA













#define MPU9250_AK8963_INFO












#define MPU9250_AK8963_ST1













#define MPU9250_AK8963_XOUT_L










0x5E


0x5F


0x60


0x63


0x64


0x65


0x66


0x67


0x68



0x69


0x6A




0x6B


//


电源管理,


典型值:


0x00(


正常启用


)




0x6C



0x72


0x73


0x74




0x75


//ID


寄存器


(


默认数值


0x71


,只读


)


0x77


0x78


0x7A


0x7B


0x7D


0x7E





0x00





0x01





0x02





0x03























































#define MPU9250_AK8963_XOUT_H















0x04


#define MPU9250_AK8963_YOUT_L















0x05


#define MPU9250_AK8963_YOUT_H















0x06


#define MPU9250_AK8963_ZOUT_L















0x07


#define MPU9250_AK8963_ZOUT_H















0x08


#define MPU9250_AK8963_ST2


















0x09


#define MPU9250_AK8963_CNTL

















0x0A


#define MPU9250_AK8963_CNTL2
















0x0B


#define


MPU9250_AK8963_RSV


















0x0B


//DO


NOT


ACCESS



#define MPU9250_AK8963_ASTC

















0x0C


#define MPU9250_AK8963_TS1


















0x0D //DO NOT ACCESS


#define MPU9250_AK8963_TS2


















0x0E //DO NOT ACCESS


#define MPU9250_AK8963_I2CDIS















0x0F


#define MPU9250_AK8963_ASAX

















0x10


#define MPU9250_AK8963_ASAY

















0x11


#define MPU9250_AK8963_ASAZ

















0x12



#define MPU9250_AK8963_I2C_ADDR 0x0C


#define MPU9250_AK8963_POWER_DOWN 0x10


#define MPU9250_AK8963_FUSE_ROM_ACCESS 0x1F


#define MPU9250_AK8963_SINGLE_MEASUREMENT 0x11


#define MPU9250_AK8963_CONTINUOUS_MEASUREMENT 0x16 //MODE2


刷新速率


100Hz


#define MPU9250_AK8963_DATA_READY







(0x01)


#define MPU9250_AK8963_DATA_OVERRUN





(0x02)


#define MPU9250_AK8963_OVERFLOW









(0x80)


#define MPU9250_AK8963_DATA_ERROR







(0x40)


#define MPU9250_AK8963_CNTL2_SRST 0x01



//


#define MPU9250_I2C_SLV4_EN 0x80


#define MPU9250_I2C_SLV4_DONE 0x40


#define MPU9250_I2C_SLV4_NACK 0x10


//


#define MPU9250_I2C_IF_DIS (0x10)


#define MPU9250_I2C_MST_EN (0x20)


#define MPU9250_FIFO_RST (0x04)


#define MPU9250_FIFO_ENABLE (0x40)


//


#define MPU9250_RESET 0x80


#define MPU9250_CLOCK_MASK 0xF8


#define MPU9250_CLOCK_INTERNAL 0x00


#define MPU9250_CLOCK_PLL 0x01


#define MPU9250_CLOCK_PLLGYROZ 0x03


#define MPU9250_FS_SEL_MASK 0xE7


#define MPU9250_SLEEP_MASK 0x40


//


#define MPU9250_XYZ_GYRO 0xC7


#define MPU9250_XYZ_ACCEL 0xF8


//


#define MPU9250_RAW_RDY_EN (0x01)


#define MPU9250_RAW_DATA_RDY_INT (0x01)


#define MPU9250_FIFO_OVERFLOW (0x10)


//


#define MPU9250_INT_ANYRD_2CLEAR (0x10)


#define MPU9250_LATCH_INT_EN (0x20)


//


#define MPU9250_MAX_FIFO (1024)


#define MPU9250_FIFO_SIZE_1024



(0x40)


#define MPU9250_FIFO_SIZE_2048



(0x80)


#define MPU9250_FIFO_SIZE_4096



(0xC0)



#define MPU9250_TEMP_OUT (0x80)


#define MPU9250_GYRO_XOUT (0x40)


#define MPU9250_GYRO_YOUT (0x20)


#define MPU9250_GYRO_ZOUT (0x10)


#define MPU9250_ACCEL (0x08)


////////////////// ////////////////////////////////////////////////// //////


#define SMPLRT_DIV 0


#define MPU9250_SPIx_ADDR 0x00

< br>/********************************************** ********************************


/


#define MPU9250_SPI_ReadWriteByte(x)


SPI1_ReadWriteByte(x)


#define MPU9250_CS_L











GPIO_ResetBits(GPIOA,GPIO_Pin_4)





#define MPU9250_CS_H











GPIO_SetBits(GPIOA,GPIO_Pin_4)

< br>/********************************************** ********************************


/

< p>
//////////////////////////////////////////// //////////////////////////////


enum MPU9250_GYRO_DLPF



{






MPU9250_GYRO_DLPF_250HZ = 0,






MPU9250_GYRO_DLPF_184HZ,






MPU9250_GYRO_DLPF_92HZ,






MPU9250_GYRO_DLPF_41HZ,






MPU9250_GYRO_DLPF_20HZ,






MPU9250_GYRO_DLPF_10HZ,






MPU9250_GYRO_DLPF_5HZ,






MPU9250_GYRO_DLPF_3600HZ,






NUM_GYRO_DLPF


};


enum MPU9250_GYRO_FSR



{






MPU9250_FSR_250DPS = 0,






MPU9250_FSR_500DPS,






MPU9250_FSR_1000DPS,






MPU9250_FSR_2000DPS,






MPU9250_NUM_GYRO_FSR


};


enum MPU9250_ACCEL_DLPF



{






MPU9250_ACCEL_DLPF_460HZ = 0,






MPU9250_ACCEL_DLPF_184HZ,






MPU9250_ACCEL_DLPF_92HZ,






MPU9250_ACCEL_DLPF_41HZ,






MPU9250_ACCEL_DLPF_20HZ,






MPU9250_ACCEL_DLPF_10HZ,






MPU9250_ACCEL_DLPF_5HZ,






MPU9250_ACCEL_DLPF_460HZ2,






MPU9250_NUM_ACCEL_DLPF


};


enum MPU9250_ACCEL_FSR



{






MPU9250_FSR_2G = 0,






MPU9250_FSR_4G,






MPU9250_FSR_8G,






MPU9250_FSR_16G,






MPU9250_NUM_ACCEL_FSR


};


enum MPU9250_CLK



{






MPU9250_CLK_INTERNAL = 0,






MPU9250_CLK_PLL,






MPU9250_NUM_CLK


};


//MPU9250_SPI_Write


//MPU925 0



SPI


写一个字节函数

< p>


//reg_addr


寄存器地址




data


要写入的数据



void MPU9250_SPI_Write(u8 reg_addr, u8 data)


{



MPU9250_CS_L;



MPU9250_SPI_ReadWriteByte(reg_addr);



MPU9250_SPI_ReadWriteByte(data);



MPU9250_CS_H;


}


//MPU9250_SPI_Writes


//MPU92 50



SPI


写多个字节函数



//reg_addr


寄存器地址


len


字节数




*data


要写入的数据存放的数组



void MPU9250_SPI_Writes(u8 reg_addr, u8 len, u8* data)


{



u32i = 0;



MPU9250_CS_L;



MPU9250_SPI_ReadWriteByte(reg_addr);



while(i



{




MPU9250_SPI_ReadWriteByte(data[i++]);



}



MPU9250_CS_H;


}


//MPU9250_SPI_Read


//MPU9250


的读一个字节函数



//reg_addr


寄存器地址



u8 MPU9250_SPI_Read(u8 reg_addr)


{



u8 dummy = 0;



u8 data = 0;




MPU9250_CS_L;



MPU9250_SPI_ReadWriteByte(0x80 | reg_addr);



data = MPU9250_SPI_ReadWriteByte(dummy);



MPU9250_CS_H;



return data;


}


//MPU9250_SPI_Reads


//MPU9250


的读多个字节函数



//reg_addr


寄存器地址


le n


读取字节数



*data


数据存放数组



void MPU9250_SPI_Reads(u8 reg_addr, u8 len, u8* data)


{



u32i = 0;



u8 dummy = 0x00;




MPU9250_CS_L;



MP U9250_SPI_ReadWriteByte(MPU9250_I2C_READ | reg_addr);



while(i




data[i++] = MPU9250_SPI_ReadWriteByte(dummy);

-


-


-


-


-


-


-


-



本文更新与2021-02-01 18:48,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/594563.html

MPU9250配置例程的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文