分享一個別人使用F1mini開發板 使用6050測角度的程序的程序
所有資料51hei提供下載:
程序3 讀出數據.rar
(406.83 KB, 下載次數: 41)
2017-8-10 18:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
stm32單片機源程序(主程序)如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include "key.h"
- #include "MPU6050.h"
- #include "myiic.h"
- #include "usart.h"
- #include "adc.h"
- #include "dma.h"
- #include "math.h"
- #include "inv_mpu.h"
- #include "inv_mpu_dmp_motion_driver.h"
- //ALIENTEK Mini STM32開發板范例代碼19
- //IIC實驗
-
- u16 table[8]={0};
- int main(void)
- {
- u8 t;
- float pitch,roll,yaw; //歐拉角
- short aacx,aacy,aacz; //加速度傳感器原始數據
- short gyrox,gyroy,gyroz; //陀螺儀原始數據
- short temp;
- NVIC_Configuration();
- delay_init(); //延時函數初始化
- uart_init(9600); //串口初始化為9600
- LCD_Init();
- Init_MUP6050(); //IIC初始化
- while(mpu_dmp_init())
- {
- LCD_ShowString(30,130,200,16,16,"MPU6050 Error");
- delay_ms(200);
- LCD_Fill(30,130,239,130+16,WHITE);
- delay_ms(200);
- }
- LCD_ShowString(30,130,200,16,16,"MPU6050 OK");
- LCD_ShowString(30,150,200,16,16,"KEY0:UPLOAD ON/OFF");
- POINT_COLOR=BLUE;//設置字體為藍色
- LCD_ShowString(30,170,200,16,16,"UPLOAD ON ");
- LCD_ShowString(30,200,200,16,16," Temp: . C");
- LCD_ShowString(30,220,200,16,16,"Pitch: . C");
- LCD_ShowString(30,240,200,16,16," Roll: . C");
- LCD_ShowString(30,260,200,16,16," Yaw : . C");
-
- while(1)
- {
-
- {
- MPU_Get_Accelerometer(&aacx,&aacy,&aacz); //得到加速度傳感器數據
- MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz); //得到陀螺儀數據
- mpu_dmp_get_data(&pitch,&roll,&yaw);
-
- temp=pitch*10;
- if(temp<0)
- {
- LCD_ShowChar(30+48,220,'-',16,0); //顯示負號
- temp=-temp; //轉為正數
- }else LCD_ShowChar(30+48,220,' ',16,0); //去掉負號
- LCD_ShowNum(30+48+8,220,temp/10,3,16); //顯示整數部分
- LCD_ShowNum(30+48+40,220,temp%10,1,16); //顯示小數部分
-
-
- temp=roll*10;
- if(temp<0)
- {
- LCD_ShowChar(30+48,240,'-',16,0); //顯示負號
- temp=-temp; //轉為正數
- }else LCD_ShowChar(30+48,240,' ',16,0); //去掉負號
- LCD_ShowNum(30+48+8,240,temp/10,3,16); //顯示整數部分
- LCD_ShowNum(30+48+40,240,temp%10,1,16); //顯示小數部分
- temp=yaw*10;
- if(temp<0)
- {
- LCD_ShowChar(30+48,260,'-',16,0); //顯示負號
- temp=-temp; //轉為正數
- }else LCD_ShowChar(30+48,260,' ',16,0); //去掉負號
- LCD_ShowNum(30+48+8,260,temp/10,3,16); //顯示整數部分
- LCD_ShowNum(30+48+40,260,temp%10,1,16); //顯示小數部分
-
-
- }
-
- }
- }
復制代碼
|