当创建软件定时器出现此报错
检查timers.c文件发现文件除了头文件都是灰白的
此时不用担心,在freertos.c文件里找到FreeRTOSConfig.h里添加这四个宏定义,
#define configUSE_TIMERS 1
#define configTIMER_TASK_PRIORITY ( 2 )
#define configTIMER_QUEUE_LENGTH 10
#define configTIMER_TASK_STACK_DEPTH 256
返回timers.c文件后恢复正常
编译后有这个报错,Error: L6218E: Undefined symbol vApplicationGetTimerTaskMemory (referred from timers.o).
找到cmsis_os.c文件,翻到最下一行加上这段代码
static StaticTask_t Timer_TCB;
static StackType_t Timer_Stack[configTIMER_TASK_STACK_DEPTH];
void vApplicationGetTimerTaskMemory (StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize) {
*ppxTimerTaskTCBBuffer = &Timer_TCB;
*ppxTimerTaskStackBuffer = &Timer_Stack[0];
*pulTimerTaskStackSize = (uint32_t)configTIMER_TASK_STACK_DEPTH;
}
最后再编译一次即可