USB : Real Time Sensor Data

#define AHT20_ADD    0x38
#define AHT20_INIT   0xBE
#define AHT20_RESET  0xBA
#define AHT20_TRIG   0xAC
uint8_t Tx_Soft[1]={AHT20_RESET};
uint8_t Tx_INIT[3]={AHT20_INIT,0x08,0x00};
uint8_t Tx_Trig[3]={AHT20_TRIG,0x33,0x00};
uint8_t Rx_Data[6];
HAL_Delay(1000);
HAL_I2C_Master_Transmit(&hi2c2,AHT20_ADD<<1,Tx_INIT,3,200);
HAL_I2C_Master_Transmit(&hi2c2,AHT20_ADD<<1,Tx_Trig,3,200);
HAL_Delay(100);
HAL_I2C_Master_Receive(&hi2c2,(AHT20_ADD<<1|0x01),Rx_Data,6,200);
uint32_t Temperature,humidity;
float tem,hum;
humidity=(Rx_Data[1]<<12)+(Rx_Data[2]<<4)+(Rx_Data[3]>>4);
hum=(float)humidity/1048576*100;
Temperature=((Rx_Data[3]&0x0f)<<16)+(Rx_Data[4]<<8)+(Rx_Data[5]);
tem=((float)Temperature/1048576)*200-50;
RTC_TimeTypeDef sTime;
RTC_DateTypeDef sDate;  
char display_time[16],display_date[16], display_AHT20[16];
char Time_Zone[32],Weather_Data[32], PC_Monitor[64];
char *day_name[8]={"Sun","Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
HAL_RTC_GetTime(&hrtc,&sTime,RTC_FORMAT_BCD);
HAL_RTC_GetDate(&hrtc,&sDate,RTC_FORMAT_BCD);
sprintf(display_time," %02X:%02X:%02X ",sTime.Hours,sTime.Minutes,sTime.Seconds);
sprintf(display_date," %02X/%02X/%02X %s",sDate.Date,sDate.Month,sDate.Year,day_name[sDate.WeekDay]);
sprintf(Time_Zone,"%s Time %s",display_date,display_time);
sprintf(Weather_Data,"Weather %02.2f C %02.2f %c HR",tem,hum,37);
sprintf(PC_Monitor,"%s%s\r",Time_Zone,Weather_Data);
#include "usbd_cdc_if.h"
CDC_Transmit_FS(PC_Monitor, strlen(PC_Monitor));