小熊派LiteOS之创建任务--------循环LED灯亮灭

先说一下,学小熊派的心路,开头真的太难了,官方出的文档,案例,我只能说我按照步骤来都是不对的,也下载了官方程序烧下去也不行,最后查了好多资料才搞出来。第一次接触操作系统,真的一头雾水。下面我分享一下我的案例。

首先,先自己在操作系统上面创建一个简单的循环LED灯的任务,这个对于新手来说,你没有找到好的案例,几乎都是瞎摸的,而且还不对。
下面是我亲测有用可以直接烧在板子上面的直接在mian.c里面,你放在其他地方也可以。

void task1(void)
{
	while (1)
	{
     HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
	 HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);   
	 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
     LOS_TaskDelay(500);		
	}
}
UINT32 creat_task1()
{
	UINT32 uwRet = LOS_OK;
	TSK_INIT_PARAM_S task_init_param;
	task_init_param.usTaskPrio = 0;
	task_init_param.pcName = "task1";
	task_init_param.pfnTaskEntry = (TSK_ENTRY_FUNC)task1;
	task_init_param.uwStackSize = 0x200;
	uwRet = LOS_TaskCreate(&g_TskHandle, &task_init_param);
	if(LOS_OK != uwRet)
	{
		return uwRet;
	}
	return uwRet;
}

然后,在主函数里面这样定义。

int main(void)
{
    UINT32 uwRet = LOS_OK;
    HardWare_Init();
    uwRet = LOS_KernelInit();
    if (uwRet != LOS_OK)
    {
        return LOS_NOK;
    }
	
    extern UINT32 create_work_tasks(VOID);
    uwRet = create_work_tasks();
    if (uwRet != LOS_OK)
    {
        return LOS_NOK;
    }
//把创建的任务放在主函数中
	uwRet = creat_task1();
    if (uwRet != LOS_OK)
    {
      return LOS_NOK;
    }
    (void)LOS_Start();
    return 0;
}

这样就可以,完成一个简单任务的创建,学会这个,之后你想怎样创建任务都可以了。虽然看起来很简单,但是你根据官方出的案例走,根本行不通。
有不懂的,或者对你有帮助的可以留言。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值