新手入门
- 积分
- 8
- 金钱
- 8
- 注册时间
- 2024-11-12
- 在线时间
- 1 小时
|
1金钱
图片是我编的陀螺仪传数据的代码,请问有啥问题吗
int16_t accelX, accelY, accelZ; // 存储原始加速度数据(16位有符号整数)
char txBuffera[64]; // 发送缓冲区(格式化为字符串),足够容纳3个int16_t转字符串+分隔符+结束符
int16_t gyroX, gyroY, gyroZ; // 存储原始陀螺仪数据(16位有符号整数)
char txBufferg[64]; // 发送缓冲区(格式化为字符串),足够容纳3个int16_t转字符串+分隔符+结束符
void MPU6050_R_Accel(void) //定期读取MPU6050数据
{
uint8_t rawData1[6] , i = 0; // 存储6字节原始数据(X/Y/Z各2字节)
// 从MPU6050加速度寄存器地址读取数据
for(i = 0; i < 6; i++)
{
rawData1[i] = MPU6050_Read(ACCEL_XOUT_H + i);
}
// 组合为有符号16位整数(大端序)
accelX = (int16_t)(rawData1[0] << 8 | rawData1[1]);
accelY = (int16_t)(rawData1[2] << 8 | rawData1[3]);
accelZ = (int16_t)(rawData1[4] << 8 | rawData1[5]);
}
void MPU6050_Send_Accel(void) //将加速度数据通过USART发送出去
{
// 格式化为CSV字符串(示例:X,Y,Z\r\n)
snprintf(txBuffera, sizeof(txBuffera), "Xa:%04x,Ya:%04x,Za:%04x\r\n", accelX, accelY, accelZ);
// 通过USART发送字符串
HAL_UART_Transmit(&huart1, (uint8_t*)txBuffera, strlen(txBuffera), HAL_MAX_DELAY);
|
|