金牌会员
- 积分
- 1547
- 金钱
- 1547
- 注册时间
- 2014-7-11
- 在线时间
- 256 小时
|
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
}
串口初始化没问题,至始至终只有一个在执行,其他都不执行,请问哪里出了问题
|
|