功能介紹放開頭, 使用便捷無需愁。
這是全網(wǎng)最詳細(xì)、性價比最高的STM32實戰(zhàn)項目入門教程,通過合理的硬件設(shè)計和詳細(xì)的視頻筆記介紹,硬件使用STM32F103主控資料多方便學(xué)習(xí),通過3萬字筆記、12多個小時視頻、20多章節(jié)代碼手把手教會你如何開發(fā)和調(diào)試。讓你更快掌握嵌入式系統(tǒng)開發(fā)。
V1.5.0-STM32智能小車
V1.5.0:庫函數(shù)開發(fā)。功能:循跡、避障、跟隨、遙控、電池電壓顯示等。
視頻合集鏈接推薦觀看
[https://www.bilibili.com/video/BV1SY411L7rJ/?spm_id_from=333.337.search-card.all.click]
 **V3.3.0-STM32智能小車 **
V3:HAL庫開發(fā)、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺控制、電磁循跡、RTOS等功能。
視頻合集鏈接推薦觀看
[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click]
MPU6050姿態(tài)傳感器使用(這個沒有用視頻也沒有講給大家自行擴(kuò)展
使用)
溫濕度傳感器、光照傳感器、攝像頭模塊都是大家自己可以擴(kuò)展使用的其中攝像頭教程再規(guī)劃中
移植正點(diǎn)原子例程文件。

添加xxx.c 與xxx.h文件


**如圖 **
**6050_SDA--PB9 **
**6050_SCL--PB8 **
" />
更改驅(qū)動代碼
更改mpuiic.c中的的MPU_IIC_Init(void) 函數(shù)
//初始化IIC
void MPU_IIC_Init(void)
{     
  GPIO_InitTypeDef  GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//先使能外設(shè)IO PORTB時鐘 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_8; // 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度為50MHz
  GPIO_Init(GPIOB, &GPIO_InitStructure); //根據(jù)設(shè)定參數(shù)初始化GPIO 
  GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_8); //PB9,PB9輸出高
}
更改mpuiic.h 相關(guān)宏
//IO方向設(shè)置
#define MPU_SDA_IN()  {GPIOB- >CRH&=0XFFFFFF0F;GPIOB- >CRH|=8< < 4;}//注意這里 容易出錯
#define MPU_SDA_OUT() {GPIOB- >CRH&=0XFFFFFF0F;GPIOB- >CRH|=3< < 4;}
?
//IO操作函數(shù) 
#define MPU_IIC_SCL    PBout(8) //SCL
#define MPU_IIC_SDA    PBout(9) //SDA 
#define MPU_READ_SDA   PBin(9) //輸入SDA
注意理解
//IO方向設(shè)置
#define MPU_SDA_IN()  {GPIOB- >CRH&=0XFFFFFF0F;GPIOB- >CRH|=8< < 4;}//注意這里 容易出錯
#define MPU_SDA_OUT() {GPIOB- >CRH&=0XFFFFFF0F;GPIOB- >CRH|=3< < 4;}
" />
" />
檢查6050其他程序發(fā)現(xiàn)在mpu6050.c中有對PA15的初始化 我們需要將其注釋掉,防止影響其他程序。
在main.c聲明部分變量
extern u8  TIM5CH1_CAPTURE_STA;//輸入捕獲狀態(tài)    
extern u16TIM5CH1_CAPTURE_VAL;//輸入捕獲值
在main.c定義變量
float pitch,roll,yaw; //歐拉角
short aacx,aacy,aacz;//加速度傳感器原始數(shù)據(jù)
short gyrox,gyroy,gyroz;//陀螺儀原始數(shù)據(jù)
short temp;//溫度
初始化6050與mpu
MPU_Init();//初始化MPU6050
  while(MPU_Init()!=0);
while(mpu_dmp_init()!=0);
通過mpu 獲得數(shù)據(jù)
delay_ms(500);
mpu_dmp_get_data(&pitch,&roll,&yaw);//返回值:0,DMP成功解出歐拉角   
printf("nr 俯仰角=%0.2f      橫滾角=%0.2f     偏航角=%0.2f nr", pitch,roll,yaw);
發(fā)現(xiàn)讀取數(shù)據(jù)為零,搜索發(fā)現(xiàn)
" />
然后嘗試
mpu_dmp_get_data 使用方法
delay_ms(500);
while(mpu_dmp_get_data(&pitch,&roll,&yaw)!=0){}
printf("nr 俯仰角=%0.2f      橫滾角=%0.2f     偏航角=%0.2f nr", pitch,roll,yaw);
?
可以獲得數(shù)據(jù)
審核編輯 黃宇
- 
                                陀螺儀
                                +關(guān)注
關(guān)注
44文章
868瀏覽量
100977 - 
                                STM32
                                +關(guān)注
關(guān)注
2302文章
11107瀏覽量
370250 - 
                                DMP
                                +關(guān)注
關(guān)注
1文章
46瀏覽量
17403 - 
                                MPU6050
                                +關(guān)注
關(guān)注
39文章
310瀏覽量
74255 
發(fā)布評論請先 登錄
mpu6050解算姿態(tài)問題
請問MPU6050的軟件解算姿態(tài)和DMP解算姿態(tài)各自的優(yōu)缺點(diǎn)是什么?
MPU6050模塊
使用MPU6050硬件DMP解算姿態(tài)
MPU6050姿態(tài)融合解算的相關(guān)資料推薦
mpu6050姿態(tài)解算原理分析及程序設(shè)計
    
mpu6050姿態(tài)解算原理_mpu6050姿態(tài)解算程序
MPU6050的四元數(shù)解算姿態(tài)方法
    
畢業(yè)設(shè)計之 - 教程:MPU6050姿態(tài)解算
    
          
        
        
第八章V1.5-MPU6050陀螺儀使用方法 MPU6050姿態(tài)解算dmp MPU6050姿態(tài)解算STM32
                
 
           
            
            
                
            
評論