FreeRTOS在单片机上长时间运行后,有任务卡死
是构建了四个任务,然后长时间运行后,按键根本不响应了,但是显示还在刷新,显示的数据来源于HT7036_task_function,数据是正确的,说明只有按键任务没有被2执行,这个现象只发生在长时间运行后,刚上电的第一天没有问题。
//创建按键扫描任务
xTaskCreate((TaskFunction_t )key_task_function,
(const char* )"key_task",
(uint16_t )128,
(void* )NULL,
(UBaseType_t )2,
(TaskHandle_t* )&keytask_handler);
//创建显示任务
xTaskCreate((TaskFunction_t )display_task_function,
(const char* )"display_task",
(uint16_t )128,
(void* )NULL,
(UBaseType_t )3,
(TaskHandle_t* )&display_handler);
//创建HT7036运行任务,读取电能数据
xTaskCreate((TaskFunction_t )HT7036_task_function,
(const char* )"HT7036_task",
(uint16_t )128,
(void* )NULL,
(UBaseType_t )2,
(TaskHandle_t* )&HT7036_handler);
//485数据接收超时检测
xTaskCreate((TaskFunction_t ) receiver_task_function,
(const char* ) "receiver_task",
(uint16_t ) 128,
(void* ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t* ) &receiver_handler);