金牌会员 
   
	- 积分
 - 1706
 
        - 金钱
 - 1706 
 
       - 注册时间
 - 2014-7-11
 
      - 在线时间
 - 300 小时
 
 
 
 | 
 
2金钱 
原子哥,RT-thread多任务为何跑不起来,只有一个任务在执行static struct rt_thread usart3t_thread;//线程控制块 
static struct rt_thread uart4t_thread;//线程控制块 
static struct rt_thread usart6t_thread;//线程控制块 
static struct rt_thread upsent_thread;//线程控制块 
 
static rt_uint8_t rt_usart3t_thread_stack[1024];//线程栈 
static rt_uint8_t rt_uart4t_thread_stack[1024];//线程栈  
static rt_uint8_t rt_usart6t_thread_stack[1024];//线程栈  
static rt_uint8_t rt_upsent_thread_stack[1024];//线程栈  
 
static void usart3t_thread_entry(void* parameter) 
{ 
        while(1) 
        { 
                usart3handler(); 
        //        LED0=0;   
        //        rt_thread_delay(RT_TICK_PER_SECOND/5);                //延时  
     // LED3=!LED3;      
        //        LED0=1;    
                rt_thread_delay(RT_TICK_PER_SECOND/1000);                //延时1s 
        } 
} 
static void uart4t_thread_entry(void* parameter) 
{ 
        while(1) 
        { 
                uart4handler(); 
        //        LED0=0;   
        //        rt_thread_delay(RT_TICK_PER_SECOND/5);                //延时  
   //   LED4=!LED4;      
        //        LED0=1;    
                rt_thread_delay(RT_TICK_PER_SECOND/1000);                //延时1s 
        } 
} 
static void usart6t_thread_entry(void* parameter) 
{ 
        while(1) 
        { 
                usart6handler(); 
        //        LED0=0;   
        //        rt_thread_delay(RT_TICK_PER_SECOND/5);                //延时  
    //  LED5=!LED5;      
        //        LED0=1;    
                rt_thread_delay(RT_TICK_PER_SECOND/1000);                //延时1s 
        } 
} 
//线程LED1 
static void upsent_thread_entry(void* parameter) 
{ 
        //u8 hour, min, sec, ampm; 
        //        u8 tbuf[40]; 
        //        //  uint8_t flashc1, flashc2; 
                //        u8 year,month, date, week; 
//    uint8_t tbuf[40]; 
//    uint8_t t = 0; 
//u8 hour1, min1, sec1, ampm1,hour2, min2, sec2, ampm2; 
        while(1) 
        { 
        if(upsendflag) 
                        { 
                         Upsent(); 
                                 
                        } 
         
                rt_thread_delay(RT_TICK_PER_SECOND/1000);                //延时  
        } 
} 
 
 
 
mian() 
{ 
串口初始化 
.................................; 
 
    rt_thread_startup(&usart2t_thread);                     //启动线程led0_thread   
                         rt_thread_init(&usart3t_thread,                         //线程控制块 
                   "usart3t",                               //线程名字,在shell里面可以看到 
                   usart3t_thread_entry,                    //线程入口函数 
                   RT_NULL,                             //线程入口函数参数 
                   &rt_usart3t_thread_stack[0],             //线程栈起始地址 
                   sizeof(rt_usart3t_thread_stack),          //线程栈大小 
                   3,    //线程的优先级 
                   20);                                 //线程时间片 
    rt_thread_startup(&usart3t_thread);                     //启动线程led0_thread   
 
 rt_thread_init(&uart4t_thread,                         //线程控制块 
                   "uart4t",                               //线程名字,在shell里面可以看到 
                   uart4t_thread_entry,                    //线程入口函数 
                   RT_NULL,                             //线程入口函数参数 
                   &rt_uart4t_thread_stack[0],             //线程栈起始地址 
                   sizeof(rt_uart4t_thread_stack),          //线程栈大小 
                   3,    //线程的优先级 
                   20);                                 //线程时间片 
    rt_thread_startup(&uart4t_thread);                     //启动线程led0_thread 
 
 rt_thread_init(&usart6t_thread,                         //线程控制块 
                   "usart6t",                               //线程名字,在shell里面可以看到 
                   usart6t_thread_entry,                    //线程入口函数 
                   RT_NULL,                             //线程入口函数参数 
                   &rt_usart6t_thread_stack[0],             //线程栈起始地址 
                   sizeof(rt_usart6t_thread_stack),          //线程栈大小 
                   3,    //线程的优先级 
                   20);                                 //线程时间片 
    rt_thread_startup(&usart6t_thread);                     //启动线程led0_thread  
 
 
 
 
rt_thread_init(&upsent_thread,                         //线程控制块 
                   "upsent",                              //线程名字,在shell里面可以看到 
                   upsent_thread_entry,                    //线程入口函数 
                   RT_NULL,                             //线程入口函数参数 
                   &rt_upsent_thread_stack[0],                //线程栈起始地址 
                   sizeof(rt_upsent_thread_stack),         //线程栈大小 
                   3,    //线程的优先级 
                   20);                                             
 
        rt_thread_startup(&upsent_thread);             //启动线程led1_thread  
 
} 
 
串口初始化没问题,至始至终只有一个在执行,其他都不执行,请问哪里出了问题 
 |   
 
 
 
 
 
 |