typedef struct
{
void (* handler)(void *p_arg);//定义一个结构体,handler指向一个函数
}TaskData;
//定义一个变量
TaskData function;
//有一个函数:
void App_Handler(void *p_arg)
{
(void)p_arg; // 'p_arg' 并没有用到,防止编译器提示警告
SysTick_init();
app.Touch_Q=OSQCreate(&MsgGrp[0],N_MESSAGES); //创建消息队列
OSTaskCreate(Task_Touch,(void *)0,
&Touch_task_stk[TOUCH_TASK_STK_SIZE-1],TOUCH_TASK_PRIO); //创建触摸任务
OSTaskCreate(Task_Count,(void *)0, //创建计算任务
&Count_task_stk[COUNT_TASK_STK_SIZE-1],COUNT_TASK_PRIO);
while (1)
{
LED1( ON );
OSTimeDlyHMSM(0, 0,0,500);
LED1( OFF);
OSTimeDlyHMSM(0, 0,0,500);
}
}
int main(void)
{
BSP_Init();
OSInit();
function=App_Handler; //这里出现错误
OSTaskCreate(function,(void *)0,
&startup_task_stk[STARTUP_TASK_STK_SIZE-1], STARTUP_TASK_PRIO);
OSStart();
return 0;
}
错误信息如下:
Build target 'LED-DEMO'
compiling main.c...
main.c(55): error: #513: a value of type "void (*)(void *)" cannot be assigned to an entity of type "TaskData"
main.c: function=App_Handler;
main.c: ^
main.c(62): warning: #1-D: last line of file ends without a newline
main.c: }
main.c: ^
main.c: main.c: 1 warning, 1 error
compiling stm32f10x_it.c...
compiling BSP.c...
compiling diskio.c...
compiling app.c...
compiling COUNT.C...
Target not created
我看函数形式和我定义一样的,怎么会有错误啊。
|