2019-07-20 15:31发布
rgzdb 发表于 2017-4-6 09:36 用原子的例子改下端口就能用了,DS18B20温度显示正常吗?串口发送数据显示正常吗?把工程放上来看看。
最多设置5个标签!
我就是改的端口,但是DS18B20什么也不采集,在串口调试助手上什么也不显示,都不知道是什么原因,硬件方面应该是没有问题的,我把我改的代码放在下面了
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 ",temperature/10);
USART_RX_STA=0;
delay_ms(50);
}
}
你的程序是串口先收到数据才开始18b20的采集及发送50次的,建议把你的temperature还是定义成short型,把printf("%fC ",temperature/10); 改为printf("%fC ",temperature/10.0);
一周热门 更多>