Files
HH3slave_STM32L476RGT6/src/STP-23L.h
2025-06-18 09:13:39 +08:00

43 lines
1.6 KiB
C

#ifndef __STP23L_H
#define __STP23L_H
#include <stdint.h>
// 如果是 C++ 编译器,使用 extern "C"
#ifdef __cplusplus
extern "C" {
#endif
#define HEADER 0xAA /* 起始符 */
#define device_address 0x00 /* 设备地址 */
#define chunk_offset 0x00 /* 偏移地址命令 */
#define PACK_GET_DISTANCE 0x02 /* 获取测量数据命令 */
#define PACK_RESET_SYSTEM 0x0D /* 复位命令 */
#define PACK_STOP 0x0F /* 停止测量数据传输命令 */
#define PACK_ACK 0x10 /* 应答码命令 */
#define PACK_VERSION 0x14 /* 获取传感器信息命令 */
typedef struct {
int16_t distance; /* 距离数据:测量目标距离单位 mm */
uint16_t noise; /* 环境噪声:当前测量环境下的外部环境噪声,越大说明噪声越大 */
uint32_t peak; /* 接收强度信息:测量目标反射回的光强度 */
uint8_t confidence; /* 置信度:由环境噪声和接收强度信息融合后的测量点的可信度 */
uint32_t intg; /* 积分次数:当前传感器测量的积分次数 */
int16_t reftof; /* 温度表征值:测量芯片内部温度变化表征值,只是一个温度变化量无法与真实温度对应 */
} LidarPointTypedef;
extern uint16_t receive_cnt;
extern uint8_t confidence;
extern uint16_t distance, noise, reftof;
extern uint32_t peak, intg;
extern LidarPointTypedef Pack_sum;
void parseData(uint8_t temp_data);
void data_process(void);
#ifdef __cplusplus
}
#endif
#endif /* __STP_23L_H */