您好,我参考您的“stm32连接机智云,代码移植,NTP实时时间获取”这部分代码,时间有显示,但是一次更新要5~8分钟,我想稍微周期短一点,您看有办法吗?
下面是我的代码部分:
while (1)
{
/************************** 第一步:采集所有传感器数据 **************************/
userHandle();
gizwitsHandle((dataPoint_t *)¤tDataPoint);
/************************** 第二步:OLED显示数据(动态刷新) **************************/
// 4. 显示时间(固定位置)
if(wifi_sta){
OLED_ShowNum(0, 40, currentdatatime.dat_month,2,OLED_6X8);
OLED_ShowString(15, 40, "-", OLED_6X8);
OLED_ShowNum(25, 40, currentdatatime.dat_day,2,OLED_6X8);
OLED_ShowString(40, 40, "-", OLED_6X8);
OLED_ShowNum(50, 40, currentdatatime.dat_hour,2,OLED_6X8);
OLED_ShowString(65, 40, ":", OLED_6X8);
OLED_ShowNum(75, 40, currentdatatime.dat_minute,2,OLED_6X8);
}
else if(!wifi_sta){
}
// 1. 显示字段名称(固定位置,无需每次清屏后重写,可选)
OLED_ShowString(0, 0, "Temp:", OLED_6X8); // 温度标签(第0行,第0列)
OLED_ShowString(0, 10, "Len:", OLED_6X8); // 长度标签(第20行,第0列)
OLED_ShowString(0, 20, "Lux:", OLED_6X8); // 光照标签(第40行,第0列)
OLED_ShowString(0, 30, "TS:", OLED_6X8); // TS数据标签(第0行,第64列)
// 2. 显示实时数据(覆盖原有数据,避免重影)
OLED_ShowFloatNum(48, 0, (uint16_t)currentDataPoint.valuetemp, 2, 1, OLED_6X8); // 温度:整数2位+小数1位(如25.5)
OLED_ShowNum(32, 10, (uint16_t)currentDataPoint.valuelevel, 2, OLED_6X8); // 长度:3位数字(根据实际精度调整)
OLED_ShowNum(32, 20, (uint16_t)currentDataPoint.valuelux, 3, OLED_6X8); // 光照:3位数字(如500lux)
OLED_ShowNum(32, 30, (uint16_t)currentDataPoint.valuemud, 2, OLED_6X8); // TS数据:3位数字
// 3. 显示单位(固定位置)
OLED_ShowString(80, 0, "`c", OLED_6X8); // 温度单位
OLED_ShowString(64, 10, "cm", OLED_6X8); // 长度单位(根据实际修改,如mm)
OLED_ShowString(64, 20, "lux", OLED_6X8); // 光照单位
OLED_ShowString(64, 30, "NTU", OLED_6X8); // TS数据单位(根据实际修改,如%)
OLED_Update(); // 4. 刷新OLED屏幕(将显存数据写入硬件,完成显示更新)
/************************** 第四步:控制刷新频率(避免闪烁) **************************/
Delay_ms(500); // 每500ms刷新一次(可调整,如1000ms=1秒刷新一次)
OLED_ClearArea(48, 0, 24, 16); // 只清空数据区域(可选,减少闪烁)
OLED_ClearArea(32, 10, 24, 16);
OLED_ClearArea(32, 20, 24, 16);
OLED_ClearArea(32, 30, 24, 16);
OLED_ClearArea(0, 40, 24, 16);
OLED_ClearArea(25, 40, 24, 16);
OLED_ClearArea(50, 40, 24, 16);
OLED_ClearArea(75, 40, 24, 16);
// if(Key_GetNum() == 1)
// {
// Serial_SendString("WIFI进入AirLink连接模式\r\n");
// gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入
// }
// KEYevent();
}
}
其它部分都是复制上去的