|
FreeRTOS9.0.0 + IAR7.6
//信号灯任务:周期性闪烁
void vMyTask_FlashLed(void* pParams)
{
while(1)
{
GPIO_ResetBits(GPIOA, GPIO_Pin_1);
vTaskDelay(100);
GPIO_SetBits(GPIOA, GPIO_Pin_1);
vTaskDelay(1400);
}
}
//
static void vMyAppTaskCreate(void)
{
xTaskCreate(vMyTask_FlashLed, //任务函数
"vMyTask_FlashLed", //任务名
16, //任务栈大小,单位word,也就是4字节
NULL, //任务参数
1, //任务优先级
NULL); //任务句柄
}
在任务 vMyTask_FlashLed() 里,刚开始我是没有加入参数(void* pParams)的,声明为 vMyTask_FlashLed(void),结果编译后提示错误
Error[Pe167]: argument of type "void (*)(void)" is incompatible with parameter of type "TaskFunction_t" E:\IAR-EWARM\user\..........
根据提示信息看,意思是 xTaskCreate(vMyTask_FlashLed 的第一个参数原型不对,然后我就在任务函数里加上参数 (void* pParams) 一切就OK了
但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是但是。。。。。
之前我下过看过别的FreeRTOS9.0.0的小例程,里面任务的声明,也没有传入参数,就是(void),结果人家编译通过了,这是为何,实在难以理解 |
|