本文代碼基于 STM32 單片機,通過 I2C 總線驅動 MPU6050 六軸傳感器(集成加速度計與陀螺儀),實現傳感器初始化、ID 讀取、原始數據采集,并借助 OLED 顯示屏實時展示加速度(AccX、AccY、AccZ)與角速度(GyroX、GyroY、GyroZ)信息,為姿態檢測、運動監測等應用提供基礎數據支撐。
通過宏定義傳感器內部寄存器地址,簡化代碼中寄存器操作,避免硬編碼,提升可讀性與可維護性。
寫寄存器:
生成 I2C 起始信號,選擇從機地址( MPU6050_ADDRESS )。
發送寄存器地址、寫入數據,通過 MPU6050_WaitEvent ?等待通信完成。
生成停止信號,完成寫操作。
讀寄存器:
先寫操作發送寄存器地址(告知傳感器要讀取的數據位置)。
切換為讀模式,再次生成起始信號,讀取傳感器返回數據。
禁用 ACK、生成停止信號,完成讀操作。
初始化與數據采集:
使能 I2C 與 GPIO 時鐘( RCC_APB1PeriphClockCmd ),配置 PB10/PB11 為 I2C 復用開漏模式。
?初始化 I2C 外設(時鐘、應答、地址模式等),設置傳感器工作參數(如電源管理、采樣率):
MPU6050_WriteReg(MPU6050_PWR_MGMT_1, 0x01); ?喚醒傳感器,選擇時鐘源
MPU6050_GetData?:逐次讀取加速度