FreeRTOS Project Setup with error: expected ')' before string constant
FreeRTOS Project Setup with error: expected ')' before string constant
我正在 STM32L476 Nucleo 板上开始一个新项目,并计划使用 FreeRTOS。
我的初始项目结构:
main.c
#include "project.h"
int main(void)
{
/* Configure the system clock */
Clock_Config();
/* Configure IOs */
GPIO_Config();
/* FreeRTOS Stuff */
NVIC_SetPriorityGrouping(3);
vTaskStartScheduler();
/* Should never get here! */
while (1){}
}
project.h
#ifndef PROJECT_H_
#define PROJECT_H_
/* MPU Files */
#include "stm32l4xx.h"
/* Project Files */
#include "gpio.h"
#include "clock.h"
/* FreeRTOS */
#include "FreeRTOS.h"
#include "queue.h"
#include "task.h"
#define TASKPRIO_STD ( tskIDLE_PRIORITY + 1 )
#define TICK_TASK_PERIOD_MS pdMS_TO_TICKS( 500 )
#endif /* PROJECT_H_ */
project.c
#include "project.h"
static void vSerialTask( void * pvParameters );
xTaskCreate( vSerialTask, "I2C", configMINIMAL_STACK_SIZE, NULL, TASKPRIO_STD, NULL);
static void vSerialTask( void *pvParameters ){
for( ;; )
{
}
}
我在 xTaskCreate 行中收到此结构的语法错误:在字符串常量之前应为“)”
如果我将 xTaskCreate 移动到我的 main.c 并将任务本身留在我的 project.c 中(在这种情况下还必须删除静态),我的项目编译成功。
这里有什么问题?我已经看到 xTaskCreate 没有在 main.c 内完成的工作项目,所以无法想象这是真正的问题?
您不能在另一个函数之外调用该函数,而这正是您尝试做的。
您只能从另一个函数中调用函数。第一个执行的函数是main
我正在 STM32L476 Nucleo 板上开始一个新项目,并计划使用 FreeRTOS。
我的初始项目结构:
main.c
#include "project.h"
int main(void)
{
/* Configure the system clock */
Clock_Config();
/* Configure IOs */
GPIO_Config();
/* FreeRTOS Stuff */
NVIC_SetPriorityGrouping(3);
vTaskStartScheduler();
/* Should never get here! */
while (1){}
}
project.h
#ifndef PROJECT_H_
#define PROJECT_H_
/* MPU Files */
#include "stm32l4xx.h"
/* Project Files */
#include "gpio.h"
#include "clock.h"
/* FreeRTOS */
#include "FreeRTOS.h"
#include "queue.h"
#include "task.h"
#define TASKPRIO_STD ( tskIDLE_PRIORITY + 1 )
#define TICK_TASK_PERIOD_MS pdMS_TO_TICKS( 500 )
#endif /* PROJECT_H_ */
project.c
#include "project.h"
static void vSerialTask( void * pvParameters );
xTaskCreate( vSerialTask, "I2C", configMINIMAL_STACK_SIZE, NULL, TASKPRIO_STD, NULL);
static void vSerialTask( void *pvParameters ){
for( ;; )
{
}
}
我在 xTaskCreate 行中收到此结构的语法错误:在字符串常量之前应为“)”
如果我将 xTaskCreate 移动到我的 main.c 并将任务本身留在我的 project.c 中(在这种情况下还必须删除静态),我的项目编译成功。
这里有什么问题?我已经看到 xTaskCreate 没有在 main.c 内完成的工作项目,所以无法想象这是真正的问题?
您不能在另一个函数之外调用该函数,而这正是您尝试做的。
您只能从另一个函数中调用函数。第一个执行的函数是main