#pragma once #include /* sensor.c 切换通道时需要此寄存器地址 */ #define ADS1256_REG_MUX 0x01 /** * @brief 初始化 ADS1256:配置 GPIO/SPI,复位芯片,写入寄存器,自校准。 * @return 0 成功,负 errno 失败。 */ int ads1256_init(void); /** * @brief 等待 DRDY 拉低(转换结果可读),带超时保护。 * @param timeout_ms 超时时间(毫秒)。 */ void ads1256_wait_drdy(uint16_t timeout_ms); /** * @brief 向 ADS1256 写单个寄存器。 * @param reg 目标寄存器地址。 * @param val 要写入的值。 */ void ads1256_write_reg(uint8_t reg, uint8_t val); /** * @brief 从 ADS1256 读单个寄存器。 * @param reg 目标寄存器地址。 * @return 寄存器值。 */ uint8_t ads1256_read_reg(uint8_t reg); /** * @brief 发送 SYNC + WAKEUP 命令,触发一次同步采样。 */ void ads1256_sync_wakeup(void); /** * @brief 硬件复位 ADS1256(通过 RESET 引脚),等待复位后自校准完成。 */ void ads1256_hwreset(void); /** * @brief 读取当前 24 位转换结果,符号扩展为 int32_t。 * @return ADC 原始值。 */ int32_t ads1256_read_data(void); /** * @brief 发送单字节命令到 ADS1256。 * @param cmd 命令字。 */ void ads1256_write_cmd(uint8_t cmd);