配置 MPU6050 传感器
c
复制代码
#include "stm32f0xx_hal.h"
/* SPI 句柄 */
extern SPI_HandleTypeDef hspi1;
/* MPU6050 I2C 地址 */
#define MPU6050_ADDR 0x68
/* 读取 MPU6050 数据 */
HAL_StatusTypeDef MPU6050_ReadAccelData(int16_t* ax, int16_t* ay, int16_t* az)
{
uint8_t txBuffer[1];
uint8_t rxBuffer[6];
// 配置寄存器地址,读取加速度数据
txBuffer[0] = 0x3B; // 加速度数据寄存器起始地址
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET); // 片选拉低
HAL_SPI_Transmit(&hspi1, txBuffer, 1, HAL_MAX_DELAY);
HAL_SPI_Receive(&hspi1, rxBuffer, 6, HAL_MAX_DELAY);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); // 片选拉高
*ax = (int16_t)((rxBuffer[0] << 8) | rxBuffer[1]);
*ay = (int16_t)((rxBuffer[2] << 8) | rxBuffer[3]);
*az = (int16_t)((rxBuffer[4] << 8) | rxBuffer[5]);
return HAL_OK;
}
|