mirror of
https://gitee.com/dlmu-cone/tronone-h7-scaffold
synced 2026-07-24 11:37:44 +08:00
add damiao imu module
This commit is contained in:
@@ -1,8 +1,128 @@
|
||||
//
|
||||
// Created by ASUS on 2025/11/17.
|
||||
//
|
||||
#ifndef __DM_IMU_H
|
||||
#define __DM_IMU_H
|
||||
|
||||
#ifndef TRONONEH7_SCAFFOLD_DAMIAO_IMU_H
|
||||
#define TRONONEH7_SCAFFOLD_DAMIAO_IMU_H
|
||||
#include "stm32h7xx_hal.h"
|
||||
|
||||
#endif //TRONONEH7_SCAFFOLD_DAMIAO_IMU_H
|
||||
|
||||
#define ACCEL_CAN_MAX (235.2f)
|
||||
#define ACCEL_CAN_MIN (-235.2f)
|
||||
#define GYRO_CAN_MAX (34.88f)
|
||||
#define GYRO_CAN_MIN (-34.88f)
|
||||
#define PITCH_CAN_MAX (90.0f)
|
||||
#define PITCH_CAN_MIN (-90.0f)
|
||||
#define ROLL_CAN_MAX (180.0f)
|
||||
#define ROLL_CAN_MIN (-180.0f)
|
||||
#define YAW_CAN_MAX (180.0f)
|
||||
#define YAW_CAN_MIN (-180.0f)
|
||||
#define TEMP_MIN (0.0f)
|
||||
#define TEMP_MAX (60.0f)
|
||||
#define Quaternion_MIN (-1.0f)
|
||||
#define Quaternion_MAX (1.0f)
|
||||
|
||||
#define CMD_READ 0
|
||||
#define CMD_WRITE 1
|
||||
|
||||
typedef enum
|
||||
{
|
||||
COM_USB = 0,
|
||||
COM_RS485,
|
||||
COM_CAN,
|
||||
COM_VOFA
|
||||
|
||||
} imu_com_port_e;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CAN_BAUD_1M = 0,
|
||||
CAN_BAUD_500K,
|
||||
CAN_BAUD_400K,
|
||||
CAN_BAUD_250K,
|
||||
CAN_BAUD_200K,
|
||||
CAN_BAUD_100K,
|
||||
CAN_BAUD_50K,
|
||||
CAN_BAUD_25K
|
||||
|
||||
} imu_baudrate_e;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
REBOOT_IMU = 0,
|
||||
ACCEL_DATA,
|
||||
GYRO_DATA,
|
||||
EULER_DATA,
|
||||
QUAT_DATA,
|
||||
SET_ZERO,
|
||||
ACCEL_CALI,
|
||||
GYRO_CALI,
|
||||
MAG_CALI,
|
||||
CHANGE_COM,
|
||||
SET_DELAY,
|
||||
CHANGE_ACTIVE,
|
||||
SET_BAUD,
|
||||
SET_CAN_ID,
|
||||
SET_MST_ID,
|
||||
DATA_OUTPUT_SELECTION,
|
||||
SAVE_PARAM = 254,
|
||||
RESTORE_SETTING = 255
|
||||
} reg_id_e;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t can_id;
|
||||
uint8_t mst_id;
|
||||
|
||||
FDCAN_HandleTypeDef *can_handle;
|
||||
|
||||
float pitch;
|
||||
float roll;
|
||||
float yaw;
|
||||
|
||||
float gyro[3];
|
||||
float accel[3];
|
||||
|
||||
float q[4];
|
||||
|
||||
float cur_temp;
|
||||
|
||||
} imu_t;
|
||||
|
||||
void imu_init(uint8_t can_id, uint8_t mst_id, FDCAN_HandleTypeDef *hfdcan);
|
||||
|
||||
void imu_write_reg(uint8_t reg_id, uint32_t data);
|
||||
|
||||
void imu_read_reg(uint8_t reg_id);
|
||||
|
||||
void imu_reboot();
|
||||
|
||||
void imu_accel_calibration();
|
||||
|
||||
void imu_gyro_calibration();
|
||||
|
||||
void imu_change_com_port(imu_com_port_e port);
|
||||
|
||||
void imu_set_active_mode_delay(uint32_t delay);
|
||||
|
||||
void imu_change_to_active();
|
||||
|
||||
void imu_change_to_request();
|
||||
|
||||
void imu_set_baud(imu_baudrate_e baud);
|
||||
|
||||
void imu_set_can_id(uint8_t can_id);
|
||||
|
||||
void imu_set_mst_id(uint8_t mst_id);
|
||||
|
||||
void imu_save_parameters();
|
||||
|
||||
void imu_restore_settings();
|
||||
|
||||
void imu_request_accel();
|
||||
|
||||
void imu_request_gyro();
|
||||
|
||||
void imu_request_euler();
|
||||
|
||||
void imu_request_quat();
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user