OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 135|回复: 5

写个例程遇到奇怪问题 = =

[复制链接]

  离线 

3

主题

9

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-6-21
在线时间
6 小时
发表于 2018-6-21 14:06:38 | 显示全部楼层 |阅读模式
正点原子公众号
用任务1删除任务2 结果它把自己给删了

#define MY_TASK1_PRIO 1
#define MY_TASK1_SIZE 128
TaskHandle_t myTask1TaskHandle;
void myTask1(void *pvParameters);//任务函数

#define MY_TASK2_PRIO 2
#define MY_TASK2_SIZE 128
TaskHandle_t myTask2TaskHandle;
void myTask2(void *pvParameters);//任务函数

int main(void)
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4                  
        delay_init();                                            //延时函数初始化          
        uart_init(115200);                                        //初始化串口
        LED_Init();                                                          //初始化LED


        xTaskCreate(myTask1,"myTask1",MY_TASK1_SIZE,NULL,MY_TASK1_PRIO,myTask1TaskHandle);
       
        xTaskCreate(myTask2,"myTask2",MY_TASK2_SIZE,NULL,MY_TASK2_PRIO,myTask2TaskHandle);

        vTaskStartScheduler();
       
}

void myTask1(void *pvParameters)
{
        u8 taskNum = 0;
        for(;;)
        {
                printf("myTask1打印\r\n");
                printf("taskNum计数:%d\r\n\r\n",taskNum);
                taskNum++;
                if(taskNum == 10)
                {
                        vTaskDelete(myTask2TaskHandle);
                        printf("myTask2被删除\r\n");
                }
                vTaskDelay(500);
        }
}

void myTask2(void *pvParameters)
{
        for(;;)
        {
                printf("myTask2打印\r\n");
                vTaskDelay(500);
        }
}

打印结果:
......

myTask2打印
myTask1打印
taskNum计数:7

myTask2打印
myTask1打印
taskNum计数:8

myTask2打印
myTask1打印
taskNum计数:9

myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印
myTask2打印


回复

使用道具 举报

  离线 

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-5-25
在线时间
9 小时
发表于 2018-6-21 15:19:00 | 显示全部楼层
创建任务函数是取任务句柄地址    &myTask1TaskHandle   不是 myTask1TaskHandle
回复 支持 1 反对 0

使用道具 举报

  离线 

3

主题

9

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-6-21
在线时间
6 小时
 楼主| 发表于 2018-6-21 15:32:07 | 显示全部楼层
Dluffy 发表于 2018-6-21 15:19
创建任务函数是取任务句柄地址    &myTask1TaskHandle   不是 myTask1TaskHandle

打印出来是这样的,删除是没错了,但是又有了新问题:
为啥先打印的--------myTask2被删除
按道理应该先打印-----myTask1打印

myTask2打印
myTask1打印
taskNum计数:9

myTask2被删除
myTask1打印
taskNum计数:10

myTask1打印
taskNum计数:11

myTask1打印
taskNum计数:12
回复 支持 反对

使用道具 举报

  离线 

1

主题

134

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
261
金钱
261
注册时间
2018-5-14
在线时间
49 小时
发表于 2018-6-21 14:13:27 | 显示全部楼层
把任务句柄名字改短点儿试试
回复 支持 反对

使用道具 举报

  离线 

3

主题

9

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-6-21
在线时间
6 小时
 楼主| 发表于 2018-6-21 15:26:29 | 显示全部楼层
正点原子公众号
Dluffy 发表于 2018-6-21 15:19
创建任务函数是取任务句柄地址    &myTask1TaskHandle   不是 myTask1TaskHandle

原来如此,低级错误 = =!
回复 支持 反对

使用道具 举报

  离线 

3

主题

9

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2018-6-21
在线时间
6 小时
 楼主| 发表于 2018-6-21 15:51:06 | 显示全部楼层
yjx474065099 发表于 2018-6-21 15:32
打印出来是这样的,删除是没错了,但是又有了新问题:
为啥先打印的--------myTask2被删除
按道理应该 ...

debug了一遍,懂了 = =,谢谢各位
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

"原子哥”推荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-7-22 07:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */