OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3225|回复: 0

关于ucosiii任务挂起与恢复例程中的小疑问(STM32F103精英板)

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2019-5-10
在线时间
3 小时
发表于 2019-5-15 20:53:46 | 显示全部楼层 |阅读模式
例程中的任务一运行次数为5次时挂起了任务2
        if(task1_num==5)
                {
                        OSTaskSuspend((OS_TCB*)&Task2_TaskTCB,&err);//任务1执行5次后挂起任务2
                        printf("任务1挂起了任务2!\r\n");
                }

这时任务2停止运行,任务2控制的LED1灭,直到task1_num==10时任务2才恢复运行。


但如果将程序改为任务一运行次数为6次时挂起了任务2

        即if(task1_num==6)
                {
                        OSTaskSuspend((OS_TCB*)&Task2_TaskTCB,&err);//任务1执行5次后挂起任务2
                        printf("任务1挂起了任务2!\r\n");
                }

这时任务2同样停止运行,但是发现任务2控制的LED1是亮着的,直到task1_num==10时任务2才恢复运行,LED1才继续闪。


故发现任务在被挂起后会保持上一次的运行结果,请问这是怎么回事呢??
如果想让任务1运行到某个时刻使任务2控制的灯直接灭掉该怎么写程序呢??
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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