物联网竞赛LoRa模块采集温湿度
作者:互联网
LoRa模块采集温湿度数据
采集SHT3温湿度光照集成模块的温湿度
代码实现
int main( void )
{
Init();
OLED_Init(); //初始化OLED屏
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); //格式化温度数据,并保存到StrBuf数组中
OLED_ShowString(32,2,(uint8_t *)StrBuf); //实时输出温度数据
memset(StrBuf, '\0', 64); //清空缓存区数据
sprintf(StrBuf,"%2.2f RH",hum); //格式化湿度数据,并保存到StrBuf数组中
OLED_ShowString(32,6,(uint8_t *)StrBuf); //实时输出温度数据
HAL_Delay(1000);
}
}
代码分析
memset(); 清空数组缓冲区的数据,每次使用完进行清空一次,存储下一个数据
也可以使用两个数组来格式化输出,不用memset()清空数组。
call_sht11(); 是一个封装好获取温湿度的函数,把变量的地址传进去就能带出温湿度数据。
sprint(); 格式化输出函数,把温湿度数据格式化需要的格式存储到数组缓存区中,实现
实时更新OLED屏的温湿度数据。
OLED_ShowString(); OLED打印字符串数据,注意第三个参数得强制类型转换为(uint8_t *)无符号字符型的指针类型。
最终实现效果
标签:ShowString,StrBuf,数据,温湿度,OLED,模块,清空,LoRa 来源: https://blog.csdn.net/a6662580/article/details/121366539