/* HAL 的统一错误码。四路 HAL(i2c/gpio/pwm/time)共用这一套。 */ #ifndef HAL_ERR_H #define HAL_ERR_H #ifdef __cplusplus extern "C" { #endif typedef enum { HAL_OK = 0, HAL_ERR_ARG, /* 参数不对:引脚越界、没配就用、长度不是寄存器宽度的整数倍 */ HAL_ERR_NAK, /* 器件不应答:地址错、器件失联、总线上根本没这个东西 */ HAL_ERR_TIMEOUT, /* 事务超时(时钟被拉死、从机时钟延展过长) */ HAL_ERR_BUS, /* 仲裁丢失等其它总线级故障 */ HAL_ERR_STATE, /* 没 init 就调 */ } hal_err_t; /* 只用于日志与测试失败信息。返回的是静态字符串,不会是 NULL。 */ const char *hal_err_str(hal_err_t err); #ifdef __cplusplus } #endif #endif /* HAL_ERR_H */