freertos开发空气检测仪之综合展示

📅 发布时间:2026/7/11 10:55:34 👁️ 浏览次数:
freertos开发空气检测仪之综合展示
freertos开发空气检测仪之综合展示这个项目年前就开发得差不多了今天趁周末有时间继续更新一篇博文感谢读者的喜欢和阅读。本篇带来空气检测仪项目之综合展示大致功能分类如下显示功能按键功能网络功能RTC时间走时adc电池电压监测一、显示功能屏幕会显示温湿度PM2.5传感器数据PM2.5的详细数据PM2.5的历史数据。二、按键功能单击按键进行页面切换可双击进行配网待实现三、网络功能未实现连接互联网待后面研究。四、RTC时间走时设计对应的时间进行走时五、adc电池电源监测可以展示电池电量用于图标充电电池有动态效果展示。六、效果展示七、main代码int main(void) { /* 设置NVIC中断分组为Group4 (4位抢占, 0位子优先级) * 这是FreeRTOS运行的必要前提必须在所有NVIC配置前设置 */ nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0); /* 初始化DWT计数器 */ dwt_init(); #ifdef CORE_TIME_TEST uint32_t start_tick dwt_ns_tick_get(); // 测试dwt延迟 PLEDDevice ptLEDDevice; ptLEDDevice GetLEDDevice(LED_ID_WHITE); if (ptLEDDevice ! NULL) { ptLEDDevice-Init(ptLEDDevice); ptLEDDevice-Control(ptLEDDevice, 1); dwt_delay_ms(100); ptLEDDevice-Control(ptLEDDevice, 0); dwt_delay_ms(100); } uint32_t end_tick dwt_ns_tick_get(); DBG_log(LED device control test time: %d ns\n, end_tick - start_tick); #endif /* 创建日志打印任务 * 任务名称: LogPrint * 任务函数: vTaskLogPrint * 任务参数: NULL * 任务优先级: 2 (优先级范围: 0-40最低4最高) * 任务栈大小: 256字 * 任务句柄: xTaskHandle_log */ xTaskCreate( vTaskLogPrint, /* 任务函数 */ LogPrint, /* 任务名称 */ 256, /* 任务栈大小 */ NULL, /* 任务参数 */ 1, /* 任务优先级 (Low) */ xTaskHandle_log /* 任务句柄 */ ); #ifdef LED_TEST /* 创建LED测试任务 * 任务名称: LedTest * 任务函数: vTaskLedTest * 任务参数: NULL * 任务优先级: 1 (优先级范围: 0-40最低4最高) * 任务栈大小: 512字 * 任务句柄: xTaskHandle_led_test */ xTaskCreate( vTaskLedTest, /* 任务函数 */ LedTest, /* 任务名称 */ 512, /* 任务栈大小 */ NULL, /* 任务参数 */ 1, /* 任务优先级 */ xTaskHandle_led_test /* 任务句柄 */ ); #endif /* 启动页面管理器 (Simple GUI) */ PageManager_Start(); /* 启动数据监控任务 */ MonitorTask_Start(); /* 启动FreeRTOS调度器开始执行任务 */ vTaskStartScheduler(); /* 如果程序运行到这里说明FreeRTOS调度器启动失败 */ while (1) { /* 调度器启动失败这里可以添加错误处理代码 */ } }八、代码工程本文使用的代码工程https://download.csdn.net/download/weixin_44317448/92711925本文完