新手上路
- 积分
- 35
- 金钱
- 35
- 注册时间
- 2014-4-26
- 在线时间
- 0 小时
|
5金钱
#include"stm32f10x.h"
#include "ucos_ii.h"
#include"app_cfg.h"
extern void LED_Init(void );
/***函数声明区域*/
/**********声明创建任务堆栈*******/
static OS_STK startup_task_stk[STARTUP_TASK_STK_SIZE];
static OS_STK test1_task[test_task_SIZE];
static void test_task(void *p_arg);
static void systick_init(void)
{
RCC_ClocksTypeDef rcc_clocks;
RCC_GetClocksFreq(&rcc_clocks);
SysTick_Config(rcc_clocks.HCLK_Frequency / OS_TICKS_PER_SEC);
}
static void startup_task(void *p_arg)
{
systick_init(); /* Initialize the SysTick. */
OSStatInit(); /* Determine CPU capacity. */
/*********此处添加用户需要的任务函数**************/
OSTaskCreate(test_task,(void*)0,&test1_task[test_task_SIZE-1],test_task_PRIO);
OSTaskDel(OS_PRIO_SELF);
}
int main(void)
{
while(1)
{
OSInit();
OSTaskCreate(startup_task,(void*)0,&startup_task_stk[STARTUP_TASK_STK_SIZE-1],STARTUP_TASK_PRIO);
OSStart();
}
}
static void test_task(void*p_arg)
{
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_0);
}
}
任务跑不起来!!!1
|
最佳答案
查看完整内容[请看2#楼]
你干吗把main里面建立个while(1)在那跑啊
int main()
{
初始化时钟;
OSInit();
OS_ENTER_CRITICAL();//建立任务前关闭终端
OSTaskCreate(TASK1,(void*)0,(OS_STK*)&TASK1_STK[TASK_STK_SIZE-1],1);
OSTaskCreate(TASK2,(void*)0,(OS_STK*)&TASK2_STK[TASK_STK_SIZE-1],3);
OS_EXIT_CRITICAL();
OSStart();
return 0;
}
void TASK1(void *data)
{
在第 ...
|