采集SHT3温湿度光照集成模块的温湿度
代码实现
int main( void )
{
Init();
OLED_Init();
OLED_Clear();
hal_temHumInit();
OLED_ShowString(0,0,(uint8_t *)"Temperature:");
OLED_ShowString(0,4,(uint8_t *)"Humidty:");
while( 1 )
{
float tem,hum;
char StrBuf[64]={0};
memset(StrBuf, '\0', 64);
call_sht11(&tem, &hum);
sprintf(StrBuf,"%2.2f",tem);
OLED_ShowString(32,2,(uint8_t *)StrBuf);
memset(StrBuf, '\0', 64);
sprintf(StrBuf,"%2.2f RH",hum);
OLED_ShowString(32,6,(uint8_t *)StrBuf);
HAL_Delay(1000);
}
}
代码分析
memset(); 清空数组缓冲区的数据,每次使用完进行清空一次,存储下一个数据 也可以使用两个数组来格式化输出,不用memset()清空数组。
call_sht11(); 是一个封装好获取温湿度的函数,把变量的地址传进去就能带出温湿度数据。
sprint(); 格式化输出函数,把温湿度数据格式化需要的格式存储到数组缓存区中,实现 实时更新OLED屏的温湿度数据。
OLED_ShowString(); OLED打印字符串数据,注意第三个参数得强制类型转换为(uint8_t *)无符号字符型的指针类型。
最终实现效果
|