|
基于stm32的電子計步器,使用MPU6050角速度傳感器檢測角速度和溫度,使用的官方庫檢測位置信息。分享出來供同學們使用,傳感器數據采集板和主控板的完整源碼pcb文件都有提供,可以直接使用嘉立創商城制版。歡迎大家下載.
- #include "stm32f10x.h" // Device header
- #include "Delay.h"
- #include "OLED.h"
- #include "MPU6050.h"
- #include "inv_mpu.h"
- #include "inv_mpu_dmp_motion_driver.h"
- #include "TIM.h"
- #include "MyRTC.h"
- //float Pitch,Roll,Yaw; //俯仰角默認跟中值一樣,翻滾角,偏航角
- //int16_t ax,ay,az,gx,gy,gz; //加速度,陀螺儀角速度
- //u8 MPU_Get_Gyroscope(short *gx,short *gy,short *gz);
- //u8 MPU_Get_Accelerometer(short *ax,short *ay,short *az);
- //int temp;
- //short MPU_Get_Temperature(void);
- u8 mpu6050InitFlag = 1;
- int temp;
- unsigned long int count = 0;
- unsigned long int lastcount = 0;
- int step;
- int main(void)
- {
- OLED_Init();
- OLED_ShowString(2, 2, "Starting....");
- MyRTC_Init(); //RTC初始化
- MPU6050_Init();
- MPU6050_DMP_Init();
- // OLED_ShowString(6, 1, "Mode1");
-
- while(mpu6050InitFlag)
- {
- mpu6050InitFlag = MPU6050_DMP_Init();
- }
-
-
- OLED_ShowString(2, 1, "Time:");
- OLED_ShowString(2, 8, ":");
- OLED_ShowString(2, 11, ":");
- OLED_ShowString(3, 8, ".");
- OLED_ShowString(2, 8, ":");
- OLED_ShowString(2, 11, ":");
- OLED_ShowString(3, 1, "Temp:");
- OLED_ShowString(4, 1, "Step:");
- OLED_ShowString(3, 8, ".");
-
-
-
-
-
-
- // TIM3_Int_Iint(9999 , 7199);//定時器3的1秒中斷初始化
- while (1)
- {
- // MPU6050_DMP_Get_Data(&Pitch,&Roll,&Yaw); //讀取姿態信息(其中偏航角有飄移是正常現象)
- // MPU_Get_Gyroscope(&gx,&gy,&gz);
- // MPU_Get_Accelerometer(&ax,&ay,&az);
- // temp = MPU_Get_Temperature();
- // OLED_ShowNum(3, 1, temp, 3);
- // OLED_ShowSignedNum(2, 1, Pitch, 5);
- // OLED_ShowSignedNum(3, 1, Roll, 5);
- // OLED_ShowSignedNum(4, 1, Yaw, 5);
- // OLED_ShowSignedNum(2, 8, gx, 5);
- // OLED_ShowSignedNum(3, 8, gy, 5);
- // OLED_ShowSignedNum(4, 8, gz, 5);
-
-
-
- MyRTC_ReadTime();
-
-
- temp = MPU_Get_Temperature()/10;
- OLED_ShowNum(3, 6, temp, 2);
- temp = MPU_Get_Temperature()%10;
- OLED_ShowNum(3, 9, temp, 1);
-
-
- // temp = MPU_Get_Temperature()%100;
- // OLED_ShowNum(3, 9, temp, 1);
-
- OLED_ShowNum(2, 6, MyRTC_Time[3], 2); //時
- OLED_ShowNum(2, 9, MyRTC_Time[4], 2); //分
- OLED_ShowNum(2, 12, MyRTC_Time[5], 2); //秒
- //OLED_ShowNum(4, 1, RTC_GetCounter(), 10); //顯示32位的秒計數器
- OLED_ShowNum(5, 1, RTC_GetDivider(), 10); //顯示余數寄存器
-
-
-
- lastcount = count;
- dmp_get_pedometer_step_count(&count);
- step = count/3;
- OLED_ShowNum(4, 6, step, 3);
- // if(lastcount!=count)
- // OLED_ShowSignedNum(4, 10, (int)count, 3);
- }
- }
復制代碼 |
-
-
計步器源代碼v5.0.7z
2024-12-27 02:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
237.07 KB, 下載次數: 0, 下載積分: 黑幣 -5
-
-
計步器.rar
2024-12-21 19:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
175.11 KB, 下載次數: 0, 下載積分: 黑幣 -5
上傳嘉立創商城可以免費制作
評分
-
查看全部評分
|