//开始任务
void start_task(void *pdata)
{
OS_CPU_SR cpu_sr=0;
pdata = pdata;
msg_key=OSMboxCreate((void*)0); //创建消息邮箱
NowRunpar.array[0]=0x10;
NowRunpar.array[1]=0x11;
NowRunpar.array[2]=0x12;
NowRunpar.array[3]=0x13;
NowRunpar.array[4]=0x14;
NowRunpar.array[5]=0x15;
NowRunpar.array[6]=0x16;
NowRunpar.array[7]=0x17;
NowRunpar.array[8]=0x18;
NowRunpar.array[9]=0x19;
NowRunpar.array[10]=0x1A;
Usart1_SendB(0xEE);
Usart1_SendB(NowRunpar.cond.name);
Usart1_SendB(NowRunpar.cond.num);
Usart1_SendB(NowRunpar.cond.pullflow>>8);
Usart1_SendB(NowRunpar.cond.pullflow);
Usart1_SendB(NowRunpar.cond.pushflow>>8);
Usart1_SendB(NowRunpar.cond.pushflow);
Usart1_SendB(NowRunpar.cond.volume>>24);
Usart1_SendB(NowRunpar.cond.volume>>16);
Usart1_SendB(NowRunpar.cond.volume>>8);
Usart1_SendB(NowRunpar.cond.volume);
Usart1_SendB(NowRunpar.cond.position);
OSStatInit(); //初始化统计任务.这里会延时1秒钟左右
OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断)
//OSTaskCreate(lan_task,(void *)0,(OS_STK*)&LAN_TASK_STK[LAN_STK_SIZE-1],LAN_TASK_PRIO);
//OSTaskCreate(poll_task,(void *)0,(OS_STK*)& OLL_TASK_STK[POLL_STK_SIZE-1],POLL_TASK_PRIO);
OSTaskCreate(main_task,(void *)0,(OS_STK*)&MAIN_TASK_STK[MAIN_STK_SIZE-1],MAIN_TASK_PRIO);
//OSTaskCreate(key_task,(void *)0,(OS_STK*)&KEY_TASK_STK[KEY_STK_SIZE-1],KEY_TASK_PRIO);
OSTaskSuspend(START_TASK_PRIO); //挂起起始任务.
OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断)
}
OSTaskSuspend(START_TASK_PRIO); //挂起起始任务.
为什么会重复运行,串口几秒种就会发一次start_task任务中的串口发送数据
|