// 读取故障状态 uint16_t read_fault_status(void) { uint32_t spi_data = (1 << 23) | // 读操作 (AD5754_CTRL_REG << 16); CS_LOW(); uint16_t status = spi_read_24bit(spi_data) & 0xFFFF; CS_HIGH(); return status; } // 故障处理 void handle_faults(void) { uint16_t status = read_fault_status(); if(status & 0x0001) { // 过温保护 printf("Thermal shutdown detected\n"); } if(status & 0x0002) { // 电源故障 printf("Power supply fault\n"); } if(status & 0x0004) { // 输出短路 printf("Output short circuit\n"); } }