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-4,0最低,4最高) * 任务栈大小: 256字 * 任务句柄: &xTaskHandle_log */ xTaskCreate( vTaskLogPrint, /* 任务函数 */ "LogPrint", /* 任务名称 */ 256, /* 任务栈大小 */ NULL, /* 任务参数 */ 1, /* 任务优先级 (Low) */ &xTaskHandle_log /* 任务句柄 */ ); #ifdef LED_TEST /* 创建LED测试任务 * 任务名称: "LedTest" * 任务函数: vTaskLedTest * 任务参数: NULL * 任务优先级: 1 (优先级范围: 0-4,0最低,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
本文完!!
