#ifndef __BSP_SR04_H #define __BSP_SR04_H #include "main.h" /** * @brief 超声波模块数据结构 */ typedef struct { float distance; // 测量距离 (单位: cm) uint32_t last_tick; // 上次测量时间戳 } sr04_data_t; /** * @brief 超声波模块初始化 * @note 由于没有空闲硬件定时器捕获通道,本驱动采用 GPIO + 软件计数/HAL_GetTick 的方式 * 建议在 main.c 中确保 TRIG 引脚初始电平为低。 */ void sr04_init(void); /** * @brief 触发一次测距 * @return float 返回当前测量距离 (cm)。若超时或错误返回 -1.0 */ float sr04_measure(void); /** * @brief 获取最近一次测量的距离接口 * @return float 距离 (cm) */ float sr04_get_distance(void); #endif /* __BSP_SR04_H */