Stm32 FreeRTOS项目设置出现错误:应为';)';前字符串常量

Stm32 FreeRTOS项目设置出现错误:应为';)';前字符串常量,stm32,freertos,Stm32,Freertos,我正在STM32L476核子板上启动一个新项目,并计划使用FreeRTOS 我最初的项目结构: main.c #include "project.h" int main(void) { /* Configure the system clock */ Clock_Config(); /* Configure IOs */ GPIO_Config(); /* FreeRTOS Stuff */ NVIC_SetPriorityGrouping(3); vTas

我正在STM32L476核子板上启动一个新项目,并计划使用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){}
}
项目.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_ */
项目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中(在这种情况下还必须删除static),那么我的项目将成功编译


这里有什么问题?我已经看到过一些工作项目,其中xTaskCreate没有在main.c中完成,因此无法想象这是真正的问题?

您不能在另一个函数之外调用该函数,这正是您尝试执行的操作

只能从其他函数调用函数。执行的第一个函数是
main