历史上的今天
返回首页

历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2020年10月12日 | ucos-ii示例4:邮箱测试

2020-10-12 来源:eefocus

环境:

主机:WIN8

开发环境:MDK4.72

ucgui版本:3.90

ucos版本:ucos-ii

mcu: stm32f103VE


说明:

本示例中task1通过邮箱发送数据给task2


效果图:

源码:



#define TASK_STK_SIZE 512

/*********************************************************************

* 静态函数

**********************************************************************/

 

static void task_start(void *pdata);

static void task1(void *pdata);

static void task2(void *pdata);

 

/*********************************************************************

* 静态变量

**********************************************************************/

 

/*********************************************************************

* 任务堆栈空间

**********************************************************************/

 

static OS_STK Task_Start_Stk[TASK_STK_SIZE];

static OS_STK Task1_Stk[TASK_STK_SIZE];

static OS_STK Task2_Stk[TASK_STK_SIZE];

 

/*********************************************************************

* 信号量

**********************************************************************/

 

OS_EVENT *Semaphore;

 

/*********************************************************************

* 函数

**********************************************************************/

 

int main(void)

{

//初始化内核

OSInit();

//创建任务

OSTaskCreate(task_start,(void *)0,Task_Start_Stk + TASK_STK_SIZE - 1,10);

//启动任务

OSStart();

}

 

/*********************************************************************

* 任务函数

**********************************************************************/

 

static void task_start(void *pdata)

{

//载入世界

world_load();

//设置背景色

GUI_SetBkColor(0xb07c17);

GUI_Clear();

GUI_SetColor(GUI_BLACK);

Semaphore = OSMboxCreate((void *)0);

//新建任务

OSTaskCreate(task1,(void *)0,Task1_Stk + TASK_STK_SIZE - 1,11);

OSTaskCreate(task2,(void *)0,Task2_Stk + TASK_STK_SIZE - 1,12);

while(1)

{

OSTimeDlyHMSM(0,0,3,0);

}

}

 

static void task1(void *pdata)

{

char str[30] = {0};

uint8_t err = 0;

char *mail;

 

while(1)

{

//请求信号量

mail = OSMboxPend(Semaphore,0,&err);

//显示

sprintf(str,"task1 receive:%s",mail);

GUI_DispStringHCenterAt(str, 120, 40);

//显示

sprintf(str,"task1 time:%ds",OSTimeGet());

GUI_DispStringHCenterAt(str, 120, 5);

WM_Exec();

OSTimeDlyHMSM(0,0,1,0);

}

}

 

static void task2(void *pdata)

{

char str[30] = {0};

uint8_t err = 0;

 

while(1)

{

//显示

sprintf(str,"task2 send:%ds",OSTimeGet());

//发送信号量

OSMboxPost(Semaphore,str);

//显示

sprintf(str,"task2 time:%ds",OSTimeGet());

GUI_DispStringHCenterAt(str, 120, 20);

WM_Exec();

OSTimeDlyHMSM(0,0,3,0);

}

}


推荐阅读

史海拾趣

Barnbrook Systems Limited公司的发展小趣事

在电子产品行业,产品质量和客户服务是企业生存和发展的关键。Barnbrook深知这一点,因此在发展过程中始终坚持严格的品质管理和优质的客户服务。公司建立了完善的质量管理体系,对每一道工序都进行严格把关,确保产品的稳定性和可靠性。同时,Barnbrook也重视客户反馈和需求,不断优化产品和服务,赢得了客户的信任和好评。

Advanced Electronic Packaging公司的发展小趣事

面对电子行业的快速发展和不断变化的市场需求,Advanced Electronic Packaging公司始终保持敏锐的洞察力和强烈的创新意识。公司不断加大研发投入,推动封装技术的持续创新。从最初的单一材料封装,到后来的多功能复合封装,再到如今的智能化封装技术,公司的每一次创新都引领着电子封装行业的发展潮流。这些创新成果不仅提升了产品的附加值,还推动了整个电子产业的升级换代。

Herrmann Kg公司的发展小趣事

近年来,Herrmann Kg积极推进数字化转型,以提升公司的竞争力和市场响应速度。公司任命了具有丰富行业经验的首席数字官(CDO),负责推动集团内部流程的数字化转型。通过数字化整合业务流程,Herrmann Kg简化了与客户之间的沟通方式,优化了工作速度和透明度,同时为全球客户提供了一致的优质体验。这一战略转型不仅提升了公司的运营效率,还为客户创造了更多的附加价值技术的。

E-Z-HOOK公司的发展小趣事

在电子产品日益复杂化的背景下,E-Z-HOOK公司不断追求技术创新。他们投入大量资源研发新型测试工具,以提高测试效率和准确性。其中一项重要的创新是开发出了可重复使用的测试钩。这种测试钩具有极高的耐用性和可靠性,可以大大降低测试成本。此外,公司还推出了一系列智能化测试解决方案,通过集成先进的传感器和软件技术,实现了对测试过程的实时监控和数据分析。

CYMBET公司的发展小趣事

随着EnerChip技术的不断完善和市场的认可,CYMBET公司开始积极拓展市场,与全球各地的合作伙伴建立了紧密的合作关系。例如,CYMBET与Digi-Key Corporation签订了全球经销协议,通过Digi-Key的广泛分销网络,EnerChip系列固态可充电薄膜电池及能量采集储能模块得以迅速进入全球市场。此外,CYMBET还与多家知名电子设备制造商建立了长期合作关系,共同开发新产品,推动电子行业的发展。

Able Systems公司的发展小趣事

在追求经济效益的同时,Able Systems公司也注重履行企业社会责任。公司积极参与公益事业,关注环境保护和可持续发展。通过采用环保材料、推广节能技术等措施,公司努力降低生产过程中的能耗和排放。同时,公司还关注员工福利和职业发展,为员工提供良好的工作环境和培训机会。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

请注意,以上内容仅为概述性质,并非基于Able Systems公司的实际发展历程。如需了解更多关于Able Systems公司的故事,建议查阅相关新闻报道、公司年报等官方资料。

问答坊 | AI 解惑

电子式ABS与机械式ABS的区别

ABS是防抱死制动系统的英文缩写,在汽车制动时它可以防止车轮抱死而使车辆失去方向,从而使车辆的方向可控,现在的新车几乎全部安装了此设备。目前ABS分为电子式和机械式,性能方面有一些差别。        1.电子式ABS是根据不同的车型 ...…

查看全部问答>

学习DSP心得及其他网友原创讨论汇总

大家合作来做个2812的板子吧.好东西附送(usb转多功能并口) 尊重圈内人 我自己画的2812的板子 dsp心得 贴片到底怎么焊接,n多人在问 我的一些开发经验 DSP求学历程 写给DSP初学者:轻松入门,快速精通 ...…

查看全部问答>

交直流放大电路

本帖最后由 paulhyde 于 2014-9-15 09:04 编辑 交直流放大电路,类似宽带直流放大  …

查看全部问答>

如何判断集成电路质量好与坏?

在网上看到的,呵呵,相信由不少人遇到买假货的烦恼。 分享下,不知管用与否,姑且当做抛砖引玉吧! …

查看全部问答>

基于AVR单片机Mega16的电子时钟设计

1 引言   数字钟能长期、连续、可靠、稳定地工作;同时还具有体积小,功耗低等特点,便于携带,使用方便。数字钟是采用数字电路实现对\"时、分、秒\"数字显示的计时装置,广泛应用于个人家庭、车站、码头、办公室等公共场所,已成为人们日常生活 ...…

查看全部问答>

关于蓝牙初始化的问题

关于蓝牙初始化的问题,WIN CE 5.0的平台下,蓝牙模块是BC6. 我现在加上CSR的驱动BCSP调通了,串口能向蓝牙模块发送数据。然后设了几个PSKEY的值 // PSKEY_BDADDR &0001 = 0010 05fd 006e 0008 // PSKEY_DEVICE_NAME &0108 = 4141 // UART B ...…

查看全部问答>

看看值多少钱!

有个朋友的同学,现在在德国亚琛工业大学(德国数一数二的大学)做项目,关于4G的。 过两年后,回国发展,到那时候,他能值多少钱? 学习很好,从小学到大学,一直是班里的NO1. 在德国留学的时候,学完了3G,具体学啥不知道。现在在跟导师做有关 ...…

查看全部问答>

关于alsa音频驱动的问题

大家好,我想请教下各位关于alsa音频驱动的问题,我现在在开发板上运行一个放音程序时出现如下错误:是在调用alsa-lib库函数时硬件不能初始化出的错误,请问这个错误有可能是怎么产生的呢? ./playback plughw:0,0 06.wav Ark2116-pcm:Entered a ...…

查看全部问答>

★★★招聘硬件/嵌入式工程师

一、招聘: 硬件工程师  北京 学历:本科以上 工作经验:1年以上 工作要求:1、熟悉模拟电路和数字电路方面的知识,对单片机有比较深入的了解,熟练使用protel.         2、熟悉各类电子元器件以及其电气 ...…

查看全部问答>

求教,怎么用C#播放mp3文件

有人做过吗?望指点一二…

查看全部问答>