首页资源分类嵌入式处理器ARM MCU > mpu6000 spi驱动代码

mpu6000 spi驱动代码

已有 445122个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:mpu6000spi

    分    享:

    文档简介

    mpu6000 spi通信方式代码。

    文档预览

    #include "Mpu6000.h" //全局变量定义 MPU6000_DATA Mpu6000Date = {0,0,0,0,0,0}; //mpu6000端口初始化 void Mpu6000_initPort(void) { ClrBit(MPU6000_DDR,MPU6000_MISO); SetBit(MPU6000_DDR,MPU6000_CS); SetBit(MPU6000_DDR,MPU6000_MOSI); SetBit(MPU6000_DDR,MPU6000_SCK); SetBit(MPU6000_PORT,MPU6000_CS); ClrBit(MPU6000_PORT,MPU6000_SCK); } //mpu6000初始化 void Mpu6000_init(void) { Mpu6000_initPort(); Mpu6000_writeSingleByte(PWR_MGMT_1,0x00); Mpu6000_writeSingleByte(SMPLRT_DIV,0x07); Mpu6000_writeSingleByte(CONFIG,0x06); Mpu6000_writeSingleByte(GYRO_CONFIG,0x18); Mpu6000_writeSingleByte(ACCEL_CONFIG,0x01); } //mpu6000 SPI基本函数 UINT8 Mpu6000_swapByte(UINT8 date) { UINT8 i = 0; MPU6000_SCK_LOW; for(i=0;i<8;i++) { if(BitIsSet(date,7)) { MPU6000_MOSI_HIHG; }else{ MPU6000_MOSI_LOW; } Mpu6000_delay(); date = date<<1; MPU6000_SCK_HIHG; Mpu6000_delay(); if(BitIsSet(MPU6000_PIN,MPU6000_MISO)) { date++; } Mpu6000_delay(); MPU6000_SCK_LOW; Mpu6000_delay(); } return date; } //spi延时函数 void Mpu6000_delay(void) { NOP(); } UINT8 Mpu6000_writeSingleByte(UINT8 add,UINT8 value) { UINT8 statue = 0; MPU6000_CS_LOW; Mpu6000_delay(); statue = Mpu6000_swapByte(add); Mpu6000_swapByte(value); MPU6000_CS_HIHG; return statue; } //mpu6000读双字节 UINT16 Mpu6000_readDoubleByte(UINT8 add) { UINT8 H=0,L=0; MPU6000_CS_LOW; Mpu6000_delay(); Mpu6000_swapByte( (1<<7)|add ); H = Mpu6000_swapByte(0xff); L = Mpu6000_swapByte(0xff); MPU6000_CS_HIHG; return ((H<<8)|L); }

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。