STM32使用MPU6050在TFT | 您所在的位置:网站首页 › mpu6050倾角检测 › STM32使用MPU6050在TFT |
续上一篇,实现非填充模式显示数值的目的是在显示屏上显示MPU6050的数值,方便后面做调试,这一篇是记录使用MPU6050的一些过程。 所需材料一些修改效果所需材料 stm32f103c8t6核心板MPU60501.44寸TFT LCD杜邦线核心板是带TFT LCD 接口的,图片顺便贴出来(侵权请联系我删除): 修改程序(移植原子mini板的MPU6050) 因为MPU6050是使用IIC驱动的,因此需要初始化IIC相关的接口。这个核心板可使用两路IIC,原理图如下: 下面的IO口操作函数的修改很重要: //IO方向设置PB10、PB11 //#define MPU_SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8CRH|=3CRL|=(u32)8CRL|=(u32)3 delay_ms(200); } POINT_COLOR=BLUE; LCD_ShowString(0,30,16," Temp: . C",1); LCD_ShowString(0,50,16,"Pitch: . P",1); LCD_ShowString(0,70,16," Roll: . R",1); LCD_ShowString(0,90,16," Yaw: . Y",1); while(1) { if(mpu_dmp_get_data(&pitch,&roll,&yaw)==0) { temp=MPU_Get_Temperature(); //得到温度值 MPU_Get_Accelerometer(&aacx,&aacy,&aacz); //得到加速度传感器数据 MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz); //得到陀螺仪数据 if(report)mpu6050_send_data(aacx,aacy,aacz,gyrox,gyroy,gyroz);//用自定义帧发送加速度和陀螺仪原始数据 if(report)usart1_report_imu(aacx,aacy,aacz,gyrox,gyroy,gyroz,(int)(roll*100),(int)(pitch*100),(int)(yaw*10));//上报匿名上位机 if((t%10)==0) { //温度 if(temp LCD_ShowChar(48,50,BLUE,WHITE,'-',16,0);//显示负号 temp=-temp;//转成正数 } else LCD_ShowChar(48,50,BLUE,WHITE,' ',16,0);//去掉负号 LCD_ShowNum(48+8,50,temp/10,3,16);//显示整数部分 LCD_ShowNum(48+8+30,50,temp%10,1,16);//显示小数部分 //Roll temp=roll*10; if(temp LCD_ShowChar(48,90,BLUE,WHITE,'-',16,0);//显示负号 temp=-temp;//转成正数 } else LCD_ShowChar(48,90,BLUE,WHITE,' ',16,0);//去掉负号 LCD_ShowNum(48+8,90,temp/10,3,16);//显示整数部分 LCD_ShowNum(48+8+30,90,temp%10,1,16);//显示小数部分 t=0; //LED0=!LED0; } } t++; } }在TFT LCD显示效果如下: |
CopyRight 2018-2019 实验室设备网 版权所有 |