#define UART_RX_BUFFER_SIZE 128
unsigned char UART_RX_Buffer[UART_RX_BUFFER_SIZE];
unsigned short UART_Buffer_Top=0;
unsigned short UART_Buffer_Bom=0;
//存数据
float UART_GetFloat(void)
{
unsigned char*p;
float usTemp;
p = (unsigned char*)&usTemp;
*(p+3) = UART_RX_Buffer[UART_Buffer_Top++];
UART_Buffer_Top &= (UART_RX_BUFFER_SIZE-1);
*(p+2)= UART_RX_Buffer[UART_Buffer_Top++];
UART_Buffer_Top &= (UART_RX_BUFFER_SIZE-1);
*(p+1)= UART_RX_Buffer[UART_Buffer_Top++];
UART_Buffer_Top &= (UART_RX_BUFFER_SIZE-1);
*p= UART_RX_Buffer[UART_Buffer_Top++];
UART_Buffer_Top &= (UART_RX_BUFFER_SIZE-1);
return usTemp;
}
//读数据
void NumCtrlWriteFloat(unsigned short ID,unsigned char*p)
{
Send_Buffer[0] = ID>>8;
Send_Buffer[1] = (unsigned char) ID;
Send_Buffer[2] = *(p+3);
Send_Buffer[3] = *(p+2);
Send_Buffer[4] = *(p+1);
Send_Buffer[5] = *(p+0);
UART_SendPacked(0xe5,Send_Buffer,6);
}
比如输入39.9却显示39.89999(取5位小数)或者39.8(取一位小数),请高手指点怎么,怎么能让它准确显示39.9呢
|