初级会员

- 积分
- 57
- 金钱
- 57
- 注册时间
- 2014-7-15
- 在线时间
- 1 小时
|
5金钱
修改前后程序如下
(修改前)
unsigned int wendu;
float wendu2;
...............
wendu = USART_RX_BUF[10];
wendu <<= 8;
wendu |= USART_RX_BUF[9];
wendu2 = (float)wendu/10.0;
.............
sprintf(buf,"%.1f",wendu2);
TEXT_SetText(hWin,(const char*)buf);
这样写结果显示屏上面TEXT控件显示的数值为 0.0
(修改后)
unsigned int wendu;
double wendu2;
...............
wendu = USART_RX_BUF[10];
wendu <<= 8;
wendu |= USART_RX_BUF[9];
wendu2 = (double)wendu/10.0;
.............
sprintf(buf,"%.1f",wendu2);
TEXT_SetText(hWin,(const char*)buf);
这样子就能正常显示温度值了 比如 13.2
这是为什么呢?求帮忙解释一下,,,,感激不尽
(我的温度值串口传输过来是比实际值大十倍的,所以除以了10)
|
|