1.0
This commit is contained in:
41
App/IMU/hwt101.h
Normal file
41
App/IMU/hwt101.h
Normal file
@@ -0,0 +1,41 @@
|
||||
#ifndef HWT101_H
|
||||
#define HWT101_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "main.h"
|
||||
|
||||
#define HWT101_DMA_BUF_SIZE 256 // 必须是 32 的整数倍
|
||||
|
||||
typedef enum {
|
||||
HWT101_RATE_10HZ = 0x06,
|
||||
HWT101_RATE_50HZ = 0x08,
|
||||
HWT101_RATE_100HZ = 0x09, // 推荐:100Hz
|
||||
HWT101_RATE_200HZ = 0x0B
|
||||
} HWT101_Rate_t;
|
||||
|
||||
typedef enum {
|
||||
HWT101_BAUD_9600 = 0x02,
|
||||
HWT101_BAUD_115200 = 0x06,
|
||||
HWT101_BAUD_230400 = 0x07
|
||||
} HWT101_Baud_t;
|
||||
|
||||
typedef struct {
|
||||
float yaw; // 原始偏航角 (deg),范围 [-180, +180),跨界时跳变
|
||||
float yaw_continuous; // unwrap 后的连续偏航角 (deg),无跳变,可直接做差计算转角
|
||||
float wz; // Z 轴角速度 (deg/s)
|
||||
uint32_t last_update;
|
||||
uint8_t online;
|
||||
} HWT101_Data_t;
|
||||
|
||||
/* API 函数声明 */
|
||||
void HWT101_Init(UART_HandleTypeDef *huart);
|
||||
void HWT101_Process(void);
|
||||
|
||||
// 【升级 2】改为传入指针,安全拷贝数据,防止数据撕裂
|
||||
void HWT101_GetData(HWT101_Data_t *out_data);
|
||||
// 在末尾 API 声明处加上这句
|
||||
void HWT101_ErrorRecovery(UART_HandleTypeDef *huart);
|
||||
HAL_StatusTypeDef HWT101_Config(HWT101_Rate_t rate, HWT101_Baud_t baud);
|
||||
HAL_StatusTypeDef HWT101_ZeroYaw(void);
|
||||
|
||||
#endif /* HWT101_H */
|
||||
Reference in New Issue
Block a user