// 零点校准(0Hz输入时的输出电压) void zero_calibration(void) { // 断开频率输入信号 printf("请断开频率输入信号\n"); delay_ms(2000); // 测量零点输出电压 float zero_voltage = read_output_voltage(); printf("零点电压: %.3f V\n", zero_voltage); // 调整零点电位器直到输出为0V printf("调整零点电位器至0V\n"); // 保存零点校准值 zero_offset = zero_voltage; } // 满度校准 void span_calibration(float input_frequency) { // 输入标准频率信号 printf("请输入%.0fHz标准频率信号\n", input_frequency); delay_ms(2000); // 计算理论输出电压 float theory_voltage = input_frequency * std_scale; // 测量实际输出电压 float actual_voltage = read_output_voltage(); printf("理论电压: %.3f V\n", theory_voltage); printf("实际电压: %.3f V\n", actual_voltage); // 计算校准误差 float error = (actual_voltage - theory_voltage) / theory_voltage * 100; printf("误差: %.2f%%\n", error); // 调整满度电位器 printf("调整满度电位器进行校准\n"); }