/*********************************************************************************************/
【*】程序簡介
-工程名稱:陀螺儀—MPU6050
-實驗平臺: 秉火STM32 指南者 開發板
-MDK版本:5.16
-ST固件庫版本:3.5
【 !】功能簡介:
基本MPU6050驅動,簡單地獲取傳感器數據。
【*】注意事項:
1.本工程使用硬件IIC,硬件IIC與液晶屏同時使用時會有沖突,所以本程序不包含液晶輸出。
2.MPU6050的AD0引腳接GND時,地址為0x68 ,接3.3V時,地址為0x69,
可在bsp_i2c.h文件修改宏MPU6050_SLAVE_ADDRESS的值來匹配硬件連接,默認AD0接地,使用0x68地址
#define MPU6050_SLAVE_ADDRESS (0x68<<1)
【 !】實驗操作:
步驟如下(步驟可參考配套的教程,有圖片說明):
1.按照引腳分配說明連接好MPU6050模塊和開發板。
2.確認開發板的USB TO USART接口已與電腦相連,確認電腦端能查看到該串口設備。
3..打開串口調試助手(波特率為115200),即可查看數據輸出。
【*】 引腳分配
陀螺儀(MPU6050):
MPU6050芯片的I2C接口與STM32的I2C1相連,且已接上拉電阻。
VCC <--->3.3或5V
GND <--->GND
SCL <--->PB6
SDA <--->PB7
INT <--->PA11 傳感器數據中斷引腳
AD0 <--->懸空或接地
串口(TTL-USB TO USART):
CH340的收發引腳與STM32的發收引腳相連。
RX<--->PA9
TX<--->PA10
/*********************************************************************************************/
【*】 版本
-程序版本:1.0
-發布日期:2015-10
-版本更新說明:首次發布
/*********************************************************************************************/
/*********************************************************************************************/
0.png (51.77 KB, 下載次數: 99)
下載附件
2017-5-2 01:16 上傳
stm32單片機源程序:
- /**
- ******************************************************************************
- * @file main.c
- * @author LYC
- * @version V1.0
- * @date 2014-04-22
- * @brief MPU6050 硬件IIC測試
- ******************************************************************************
- * @attention
- * 實驗平臺:秉火 指南者 STM32 開發板
- ******************************************************************************
- */
-
- #include "stm32f10x.h"
- #include "stm32f10x_it.h"
- #include "./systick/bsp_SysTick.h"
- #include "./led/bsp_led.h"
- #include "./usart/bsp_usart.h"
- #include "./mpu6050/mpu6050.h"
- #include "./i2c/bsp_i2c.h"
- #define TASK_ENABLE 0
- extern unsigned int Task_Delay[NumOfTask];
- /*
- * t : 定時時間
- * Ticks : 多少個時鐘周期產生一次中斷
- * f : 時鐘頻率 72000000
- * t = Ticks * 1/f = (72000000/100000) * (1/72000000) = 10us
- */
- /**
- * @brief 主函數
- * @param 無
- * @retval 無
- */
- int main(void)
- {
- short Acel[3];
- short Gyro[3];
- float Temp;
-
- SysTick_Init();
- SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
- /* LED 端口初始化 */
- LED_GPIO_Config();
- /* 串口通信初始化 */
- USART_Config();
- //I2C初始化
- I2C_Bus_Init();
- //MPU6050初始化
- MPU6050_Init();
-
- //檢測MPU6050
- if (MPU6050ReadID() == 1)
- {
- while(1)
- {
- if(Task_Delay[0]==TASK_ENABLE)
- {
- LED2_TOGGLE;
- Task_Delay[0]=1000;
- }
-
- if(Task_Delay[1]==0)
- {
- MPU6050ReadAcc(Acel);
- printf("加速度:%8d%8d%8d",Acel[0],Acel[1],Acel[2]);
- MPU6050ReadGyro(Gyro);
- printf(" 陀螺儀%8d%8d%8d",Gyro[0],Gyro[1],Gyro[2]);
- MPU6050_ReturnTemp(&Temp);
- printf(" 溫度%8.2f\r\n",Temp);
-
- Task_Delay[1]=500;//更新一次數據,可根據自己的需求,提高采樣頻率,如100ms采樣一次
- }
- //************************************* 下面是增加任務的格式************************************//
- // if(Task_Delay[i]==0)
- // {
- // Task(i);
- // Task_Delay[i]=;
- // }
- }
- }
- else
- {
- printf("\r\n沒有檢測到MPU6050傳感器!\r\n");
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
下載:
1.硬件STM32-MPU6050.zip
(6.44 MB, 下載次數: 196)
2017-5-2 00:31 上傳
點擊文件名下載附件
無 下載積分: 黑幣 -5
|