新手入门
- 积分
- 6
- 金钱
- 6
- 注册时间
- 2018-10-8
- 在线时间
- 0 小时
|
1金钱

系统设置2个任务,系统运行时出现一些异常现象,请问有没有遇到过?是什么原因引起的?
方式1:系统运行正常
void Task1_Task(void * pvParameters)
{
while(1)
{
vTaskDelay(500); //延时函数(任务调度)
printf("Task1\r\n"); //串口打印
}
}
void Task2_Task(void * pvParameters)
{
while(1)
{
Delay_Ms(500); //延时函数(无任务调度)
LED_TOGGLE; //LED闪烁(取反)
}
}
方式2:任务1正常,任务2没反应,LED不闪烁
void Task1_Task(void * pvParameters)
{
while(1)
{
Delay_Ms(500); //延时函数(无任务调度)
printf("Task1\r\n"); //串口打印
}
}
void Task2_Task(void * pvParameters)
{
while(1)
{
vTaskDelay(500); //延时函数(任务调度)
LED_TOGGLE; //LED闪烁(取反)
}
}
方式3:任务1正常,任务2没反应,LED不闪烁
void Task1_Task(void * pvParameters)
{
while(1)
{
Delay_Ms(500); //延时函数(无任务调度)
printf("Task1\r\n"); //串口打印
}
}
void Task2_Task(void * pvParameters)
{
while(1)
{
Delay_Ms(500); //延时函数(无任务调度)
LED_TOGGLE; //LED闪烁(取反)
}
}
|
|
最佳答案
查看完整内容[请看2#楼]
楼主任务1的优先级应该比任务2高。任务1不使自己进入阻塞态(任务调度)就一直运行它本身。实验现象是正常的,建议多看看开发手册
|