//发送float数据。共用体里的参数长度应该一致。否则内存无法对齐
//用于类型转换
union result2
{
float lightnum;
unsigned char data[4];
}Send_Float_Data;
#includeunion result1 { float lightnum; unsigned char data[4]; }Read_Float_Data; float Read_data = 0; float Send_data = 319.261993; void send_loopdata() { for(int i = 0;i<4; i++) { USART_SendData(USART_CH, Send_Float_Data.data[i]); Ddl_Delay1ms(1); } } int main(void) { SystemClockConfig(); ceventInit(); ceventPost(EVENT_TIMER_STAGE1); ceventPost(EVENT_UART_STAGE2); SysTick_Init(1000u); //1ms while(1) { #if 0 Read_Float_Data.data[0] = 0x89; Read_Float_Data.data[1] = 0xA1; Read_Float_Data.data[2] = 0x9F; Read_Float_Data.data[3] = 0x43; Read_data = Read_Float_Data.lightnum; printf("%f n",Read_data); #endif #if 1 Send_Float_Data.lightnum = Send_data; send_loopdata(); #endif Ddl_Delay1ms(2000); } }



