历史上的今天
今天是: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);
}
}
史海拾趣
|
ABS是防抱死制动系统的英文缩写,在汽车制动时它可以防止车轮抱死而使车辆失去方向,从而使车辆的方向可控,现在的新车几乎全部安装了此设备。目前ABS分为电子式和机械式,性能方面有一些差别。 1.电子式ABS是根据不同的车型 ...… 查看全部问答> |
|
大家合作来做个2812的板子吧.好东西附送(usb转多功能并口) 尊重圈内人 我自己画的2812的板子 dsp心得 贴片到底怎么焊接,n多人在问 我的一些开发经验 DSP求学历程 写给DSP初学者:轻松入门,快速精通 ...… 查看全部问答> |
|
1 引言 数字钟能长期、连续、可靠、稳定地工作;同时还具有体积小,功耗低等特点,便于携带,使用方便。数字钟是采用数字电路实现对\"时、分、秒\"数字显示的计时装置,广泛应用于个人家庭、车站、码头、办公室等公共场所,已成为人们日常生活 ...… 查看全部问答> |
|
关于蓝牙初始化的问题,WIN CE 5.0的平台下,蓝牙模块是BC6. 我现在加上CSR的驱动BCSP调通了,串口能向蓝牙模块发送数据。然后设了几个PSKEY的值 // PSKEY_BDADDR &0001 = 0010 05fd 006e 0008 // PSKEY_DEVICE_NAME &0108 = 4141 // UART B ...… 查看全部问答> |
|
大家好,我想请教下各位关于alsa音频驱动的问题,我现在在开发板上运行一个放音程序时出现如下错误:是在调用alsa-lib库函数时硬件不能初始化出的错误,请问这个错误有可能是怎么产生的呢? ./playback plughw:0,0 06.wav Ark2116-pcm:Entered a ...… 查看全部问答> |
|
一、招聘: 硬件工程师 北京 学历:本科以上 工作经验:1年以上 工作要求:1、熟悉模拟电路和数字电路方面的知识,对单片机有比较深入的了解,熟练使用protel. 2、熟悉各类电子元器件以及其电气 ...… 查看全部问答> |




