From d8c939bb79202e27efa1d0e1b2a36fd0da70e54c Mon Sep 17 00:00:00 2001 From: aixiao Date: Tue, 12 Mar 2024 09:41:56 +0800 Subject: [PATCH] Added temperature and frequency data --- main.c | 26 ++++++++++++++++---------- main.h | 2 +- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/main.c b/main.c index cd9d992..c3acdd1 100644 --- a/main.c +++ b/main.c @@ -77,14 +77,14 @@ void Analysis_data(void) unsigned char byte[2]; } crcnow; - if (receive_finished == 1) //接收完成 + if (receive_finished == 1) // 接收完成 { receive_finished = 0; - if (Rx_Buffer[0] == Read_ID) //确认 ID 正确 + if (Rx_Buffer[0] == Read_ID) // 确认 ID 正确 { - crcnow.word16 = chkcrc(Rx_Buffer, reveive_number - 2); //reveive_number 是接收数据总长度 - if ((crcnow.byte[0] == Rx_Buffer[reveive_number - 1]) && (crcnow.byte[1] == Rx_Buffer[reveive_number - 2])) //确认 CRC 校验正确 + crcnow.word16 = chkcrc(Rx_Buffer, reveive_number - 2); // reveive_number 是接收数据总长度 + if ((crcnow.byte[0] == Rx_Buffer[reveive_number - 1]) && (crcnow.byte[1] == Rx_Buffer[reveive_number - 2])) // 确认 CRC 校验正确 { Voltage_data = (((unsigned long)(Rx_Buffer[3])) << 24) | (((unsigned long)(Rx_Buffer[4])) << 16) | (((unsigned long)(Rx_Buffer[5])) << 8) | Rx_Buffer[6]; Current_data = (((unsigned long)(Rx_Buffer[7])) << 24) | (((unsigned long)(Rx_Buffer[8])) << 16) | (((unsigned long)(Rx_Buffer[9])) << 8) | Rx_Buffer[10]; @@ -92,6 +92,9 @@ void Analysis_data(void) Energy_data = (((unsigned long)(Rx_Buffer[15])) << 24) | (((unsigned long)(Rx_Buffer[16])) << 16) | (((unsigned long)(Rx_Buffer[17])) << 8) | Rx_Buffer[18]; Pf_data = (((unsigned long)(Rx_Buffer[19])) << 24) | (((unsigned long)(Rx_Buffer[20])) << 16) | (((unsigned long)(Rx_Buffer[21])) << 8) | Rx_Buffer[22]; CO2_data = (((unsigned long)(Rx_Buffer[23])) << 24) | (((unsigned long)(Rx_Buffer[24])) << 16) | (((unsigned long)(Rx_Buffer[25])) << 8) | Rx_Buffer[26]; + Temperature_data = (((unsigned long)(Rx_Buffer[27])) << 24) | (((unsigned long)(Rx_Buffer[28])) << 16) | (((unsigned long)(Rx_Buffer[29])) << 8) | Rx_Buffer[30]; + Hz_data = (((unsigned long)(Rx_Buffer[31])) << 24) | (((unsigned long)(Rx_Buffer[32])) << 16) | (((unsigned long)(Rx_Buffer[33])) << 8) | Rx_Buffer[34]; + } } } @@ -99,23 +102,26 @@ void Analysis_data(void) void Print_data(void) { - float voltage_value = (float)Voltage_data / 10000.0; + float voltage_value = (float)Voltage_data * 0.0001; printf("电压: %.2f V\n", voltage_value); - float current_data = (float)Current_data / 10000.0; + float current_data = (float)Current_data * 0.0001; printf("电流: %.2f A\n", current_data); - float power_data = (float)Power_data / 10000.0; + float power_data = (float)Power_data * 0.0001; printf("功率: %.2f W\n", power_data); - float energy_data = (float)Energy_data / 10000.0; + float energy_data = (float)Energy_data * 0.0001; printf("电能: %.2f KWH\n", energy_data); - float pf_data = (float)Pf_data / 10000.0; + float pf_data = (float)Pf_data *0.001; printf("功率因数: %.2f \n", pf_data); - float cO2_data = (float)CO2_data / 10000.0; + float cO2_data = (float)CO2_data * 0.0001; printf("二氧化碳: %.2f KG\n", cO2_data); + + printf("温度: %.2f ℃\n", (float)Temperature_data * 0.01); + printf("频率: %.2f HZ\n", (float)Hz_data * 0.01); return ; } diff --git a/main.h b/main.h index 9a15d28..ce2fde0 100644 --- a/main.h +++ b/main.h @@ -27,7 +27,7 @@ int Read_ID = 0x01; unsigned char Tx_Buffer[8]; unsigned char Rx_Buffer[40]; unsigned char read_enable, receive_finished, reveive_number; -unsigned long Voltage_data, Current_data, Power_data, Energy_data, Pf_data, CO2_data; +unsigned long Voltage_data, Current_data, Power_data, Energy_data, Pf_data, CO2_data, Temperature_data, Hz_data; unsigned int calccrc(unsigned char crcbuf, unsigned int crc); unsigned int chkcrc(unsigned char *buf, unsigned char len);