论坛元老
 
- 积分
- 6679
- 金钱
- 6679
- 注册时间
- 2015-8-25
- 在线时间
- 1036 小时
|
发表于 2017-4-7 16:49:57
|
显示全部楼层
本帖最后由 szczyb1314 于 2017-4-7 16:53 编辑
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0X3fff;
for(t=0;t<len;t++)
{
HAL_UART_Transmit(&UART2_Handler,(uint8_t*)USART_RX_BUF,len,1000);
while(__HAL_UART_GET_FLAG(&UART2_Handler,UART_FLAG_TC)!=SET); //等待发送结束
}
for(i=0;i<50;i++)
{
temperature=DS18B20_Get_Temp();
printf("%fC\r\n",temperature/10);
USART_RX_STA=0;
delay_ms(50);
}
}
你的程序是串口先收到数据才开始18b20的采集及发送50次的,建议把你的temperature还是定义成short型,把printf("%fC\r\n",temperature/10); 改为printf("%fC\r\n",temperature/10.0); |
|