ds18b20:直接使用官方提供的.c.h文件,初始化函数ds18b20_init_x();
需要自己编写ds18b20_read();
uint16_t ds18b20_read(void)//返回值为16位数据
{
u8 val1,val2;
uint16_t val = 0;
ow_reset();
ow_byte_wr(OW_SKIP_ROM);
ow_byte_wr(DS18B20_CONVERT);
delay_us(750000);
ow_reset();
ow_byte_wr( OW_SKIP_ROM );
ow_byte_wr ( DS18B20_READ );
val1 = ow_byte_rd(); //低8位
val2 = ow_byte_rd(); //高8位
val = (val2<<8);
val =val |val1; //整合成16位的温度值
return val ;
}
dht11:直接使用官方提供的.c.h文件,初始化函数dht11_init();。(注意,下一届可能不提供驱动文件,2023年国赛提供了一部分驱动文件。)
使用DHT11_Read_Data()读取温湿度。
void dht11Proc(void)
{
char chProc[21];
u8 tem,him;
DHT11_Read_Data(&tem,&him);
if(tem>0&&him<100)
{
sprintf(chProc,(const char *)"T=%d H=%d",tem,him);
LCD_DisplayStringLine(Line3,(u8 *)chProc);
}
}