标题: 用stm32读取mpu6050 [打印本页]

作者: 51hei温文尔雅    时间: 2018-11-22 16:47
标题: 用stm32读取mpu6050
在这里粘贴main.c的程序,想发完整的文件  但是目前不太会  等我摸索好后 继续上传

#include "stm32f10x.h" //STM32头文件
#include "sys.h"
#include "delay.h"
#include "relay.h"
#include "oled0561.h"

#include "MPU6050.h"


#include "usart.h"


int main (void){//主程序
        u8 a;
        //初始化程序
         
        
        u16 t[6]={0};
        delay_ms(500); //上电时等待其他器件就绪
        RCC_Configuration(); //系统时钟初始化
        RELAY_Init();//继电器初始化
        USART1_Init(115200); //串口初始化(参数是波特率)
        I2C_Configuration();//I2C初始化

        

        OLED0561_Init(); //OLED初始化
        OLED_DISPLAY_8x16_BUFFER(0,(u8 *)"  MPU6050 TEST  "); //显示字符串
        OLED_DISPLAY_8x16_BUFFER(2,(u8 *)"X:       X:     "); //显示字符串
        OLED_DISPLAY_8x16_BUFFER(4,(u8 *)"Y:       Y:     "); //显示字符串
        OLED_DISPLAY_8x16_BUFFER(6,(u8 *)"Z:       Z:     "); //显示字符串

        MPU6050_Init(); //MPU6050初始化

        while(1){
                MPU6050_READ(t);        //加速度
                //其中t[0~2]是加速度ACCEL,t[3~5]是陀螺仪GYRO
                OLED_DISPLAY_8x16(2,2*8,t[0]/10000 +0x30);//显示
                OLED_DISPLAY_8x16(2,3*8,t[0]%10000/1000 +0x30);//显示
                OLED_DISPLAY_8x16(2,4*8,t[0]%1000/100 +0x30);//
                OLED_DISPLAY_8x16(2,5*8,t[0]%100/10 +0x30);//
                OLED_DISPLAY_8x16(2,6*8,t[0]%10 +0x30);//
                OLED_DISPLAY_8x16(2,11*8,t[3]/10000 +0x30);//显示
                OLED_DISPLAY_8x16(2,12*8,t[3]%10000/1000 +0x30);//显示
                OLED_DISPLAY_8x16(2,13*8,t[3]%1000/100 +0x30);//
                OLED_DISPLAY_8x16(2,14*8,t[3]%100/10 +0x30);//
                OLED_DISPLAY_8x16(2,15*8,t[3]%10 +0x30);//


                OLED_DISPLAY_8x16(4,2*8,t[1]/10000 +0x30);//显示
                OLED_DISPLAY_8x16(4,3*8,t[1]%10000/1000 +0x30);//显示
                OLED_DISPLAY_8x16(4,4*8,t[1]%1000/100 +0x30);//
                OLED_DISPLAY_8x16(4,5*8,t[1]%100/10 +0x30);//
                OLED_DISPLAY_8x16(4,6*8,t[1]%10 +0x30);//
                OLED_DISPLAY_8x16(4,11*8,t[4]/10000 +0x30);//显示
                OLED_DISPLAY_8x16(4,12*8,t[4]%10000/1000 +0x30);//显示
                OLED_DISPLAY_8x16(4,13*8,t[4]%1000/100 +0x30);//
                OLED_DISPLAY_8x16(4,14*8,t[4]%100/10 +0x30);//
                OLED_DISPLAY_8x16(4,15*8,t[4]%10 +0x30);//


        

                OLED_DISPLAY_8x16(6,2*8,t[2]/10000 +0x30);//显示
                OLED_DISPLAY_8x16(6,3*8,t[2]%10000/1000 +0x30);//显示
                OLED_DISPLAY_8x16(6,4*8,t[2]%1000/100 +0x30);//
                OLED_DISPLAY_8x16(6,5*8,t[2]%100/10 +0x30);//
                OLED_DISPLAY_8x16(6,6*8,t[2]%10 +0x30);//
                OLED_DISPLAY_8x16(6,11*8,t[5]/10000 +0x30);//显示
                OLED_DISPLAY_8x16(6,12*8,t[5]%10000/1000 +0x30);//显示
                OLED_DISPLAY_8x16(6,13*8,t[5]%1000/100 +0x30);//
                OLED_DISPLAY_8x16(6,14*8,t[5]%100/10 +0x30);//
                OLED_DISPLAY_8x16(6,15*8,t[5]%10 +0x30);//

for(a=0;a<6;a++)
    { printf("%d////", t[a]);


                delay_ms(200); //延时(决定刷新速度)
         }
}
}


【变量定义】
u32     a; //定义32位无符号变量a
u16     a; //定义16位无符号变量a
u8     a; //定义8位无符号变量a
vu32     a; //定义易变的32位无符号变量a
vu16     a; //定义易变的 16位无符号变量a
vu8     a; //定义易变的 8位无符号变量a
uc32     a; //定义只读的32位无符号变量a
uc16     a; //定义只读 的16位无符号变量a
uc8     a; //定义只读 的8位无符号变量a

#define ONE  1   //宏定义

delay_us(1); //延时1微秒
delay_ms(1); //延时1毫秒
delay_s(1); //延时1秒

GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED控制

*/



作者: admin    时间: 2018-11-22 20:32
不要这样发 看教程吧:http://www.51hei.com/bbs/dpj-49501-1.html




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1