V1.5: 欢迎页改'4路继电器控制终端/V1.5.0 RTOS';修复4G阻塞建链期间屏幕不显示联网进度(bg_delay挂调度器前刷新钩子)
This commit is contained in:
parent
6e98017248
commit
b81958535d
|
|
@ -148,6 +148,7 @@ void bg_delay(uint32_t ms)
|
|||
while (ms >= 20) {
|
||||
HAL_Delay(20);
|
||||
IWDG_Feed();
|
||||
app_oled_presched_tick(); /* 阻塞建链期间刷新屏幕联网进度 */
|
||||
ms -= 20;
|
||||
}
|
||||
if (ms) HAL_Delay(ms);
|
||||
|
|
|
|||
|
|
@ -98,8 +98,8 @@ void app_init(void)
|
|||
|
||||
/* OLED 屏幕(128x64 + GB2312 字库 IC) */
|
||||
oled_init();
|
||||
oled_locate(1, 2); oled_print("智能控制器");
|
||||
oled_locate(2, 2); oled_print("V" FIRMWARE_VERSION_STR);
|
||||
oled_locate(1, 0); oled_print("4路继电器控制终端");
|
||||
oled_locate(2, 2); oled_print("V" FIRMWARE_VERSION_STR " RTOS");
|
||||
log_info("> OLED: 初始化完成");
|
||||
|
||||
/* 网络模块初始化:按 EEPROM 记忆的上次成功方式优先(4G 或 WiFi) */
|
||||
|
|
@ -202,6 +202,18 @@ static void app_task(void *arg)
|
|||
* 已联网:电压电流/功率电能/开关状态/网络+运行时间
|
||||
* 未联网:按 g_net_ui_phase 显示 4G/WiFi 联网进度(WiFi 带倒计时)
|
||||
* 防烧屏:每 10s 内容整体右移 0/2/4px 轮换 ====*/
|
||||
static void oled_home_refresh(uint32_t up_ms);
|
||||
|
||||
/* 调度器启动前的阻塞建链阶段(app_init 里的 4G 初始化),
|
||||
* sys_task 还没跑,由 bg_delay 每 500ms 调一次刷新联网进度页 */
|
||||
void app_oled_presched_tick(void)
|
||||
{
|
||||
static uint32_t last = 0;
|
||||
if (HAL_GetTick() - last < 500) return;
|
||||
last = HAL_GetTick();
|
||||
oled_home_refresh(0);
|
||||
}
|
||||
|
||||
static void oled_home_refresh(uint32_t up_ms)
|
||||
{
|
||||
char buf[24];
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
/* FreeRTOS 任务调度封装 */
|
||||
void app_init(void); /* 业务模块初始化(横幅/外设/网络/串口接收) */
|
||||
void app_rtos_start(void); /* 创建任务并启动调度器(不再返回) */
|
||||
void app_oled_presched_tick(void); /* 调度器启动前阻塞建链期间的屏幕进度刷新(bg_delay 调用,500ms 节流) */
|
||||
|
||||
/* 存储总线互斥(EEPROM 软件I2C 与 W25Q64 软件SPI 跨任务共用) */
|
||||
void storage_lock_init(void);
|
||||
|
|
|
|||
Loading…
Reference in New Issue