2872|1

13

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

不进来看看吗!SMT32F红龙429_uCOS-II信号量例程下载 [复制链接]

/**********************************
** 红龙429开发板
** 实验名:-红龙429-uCOS信号量
** KEIL MDK-ARM Standard Version:V5.10
** 软件库(keil) Version: unused
** 固件库(ST) Version: 1.5.0
      
实验现象:    创建信号量之后,就已经存在一个信号量,所以在任务二中,有连续释放两个
          信号量,这时候任务 2 延时被挂起,任务一开始执行,获得三次信号量成功.随后
          再次获得信号量的时候,因为已经没有信号量了,所以任务 1 被挂起等待信号量,
          这时候,任务 2 延时结束,任务 2 开始运行,再次释放两个信号量,然后延时挂起,
    任务 1 开始运行,前两次获得信号量成功,最后一次获得信号量失败,因为任务 2
    只是释放了两个信号量.这里可以看到 OSSemAccept()函数在请求不到信号量的
    时候,是不会挂起任务等待信号量的,而是直接返回的.只有OSSemPend()
          函数才会在请求不到信号量的时候,把任务挂起,一直到获得信号量,或者超时返回.
            
/**
  * @file    main.c
  * @author  WB R&D Team - openmcu666
  * @version V0.1
  * @date    2016.2.29
  * @brief   Main Program body
  */
#include "UserTask.h"
extern OS_STK startup_task_stk[];//启动任务栈
void Delay(uint32_t Time)
{
    uint32_t i;
   
    i = 0;
    while (Time--)
  {
       for (i = 0; i < 5000; i++);
    }
}
/*****************************************************************************
**   Main Function  main()
******************************************************************************/
int main(void)
{
USART1_Init();
printf("\r\n");
printf("Hello Welcome.\r\n");
printf("Thank You For Choosing Our Products.\r\n");
printf("Thank You Very Much.\r\n");
printf("This Example is uCOS-II Semaphore.\r\n");
printf("\r\n");
printf("GPIO Initialization...\r\n");
  LED_Init();
SysTick_Init();
printf("Ok,Let's Go...\r\n");

  OSInit();
OSTaskCreate(Task_Start,                         //指向任务代码的指针      
    (void *)0,                                 //任务开始执行时,传递给任务的参数parg   
    &startup_task_stk[STARTUP_TASK_STK_SIZE-1],//分配给任务的堆栈的栈顶指针   
    STARTUP_TASK_PRIO);                        //分配给任务的优先级   
OSStart();                                       
return 0;
}



【02】红龙429_uCOS-II信号量(2016.02.29).rar

171.46 KB, 下载次数: 12

此帖出自stm32/stm8论坛

最新回复

本帖最后由 没前途 于 2018-7-15 16:27 编辑 嘿嘿  详情 回复 发表于 2018-7-15 11:03
点赞 关注(1)
 

回复
举报

5

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
本帖最后由 没前途 于 2018-7-15 16:27 编辑

嘿嘿
此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表