#ifndef DATA_PACKET_H #define DATA_PACKET_H #include #define PACKET_START_BYTE 0xFFFFFFFF #define PACKET_END_BYTE 0x55 // 数据包结构 typedef struct __attribute__((packed)) { uint8_t start_byte[4]; // 包头 int32_t adc_data1; // ADC1 数据 (高位在前) int32_t adc_data2; // ADC2 数据 (高位在前) int32_t adc_data3; // ADC3 数据 (高位在前) // uint16_t checksum; // 校验和 (例如 CRC16, 高位在前) // uint8_t end_byte; // 包尾 } DataPacket_t; uint16_t Calculate_CRC16(uint8_t *data, uint16_t len); void PackData(DataPacket_t *packet, int32_t adc1, int32_t adc2, int32_t adc3); #endif // DATA_PACKET_H