标题:
UCOSII的STM32实验例程
[打印本页]
作者:
piao100
时间:
2018-7-23 15:21
标题:
UCOSII的STM32实验例程
包括UCOSII实验例程!
0.png
(46.98 KB, 下载次数: 38)
下载附件
2018-7-23 22:51 上传
单片机源程序如下:
#include "public.h"
#define START_TASK_PRIO 10 //开始任务优先级
#define START_STK_SIZE 64 //设置任务堆栈大小
OS_STK START_TASK_STK[START_STK_SIZE]; //创建任务堆栈空间
#define LED1_TASK_PRIO 1 //led1任务优先级
#define LED1_STK_SIZE 64 //设置任务堆栈大小
OS_STK LED1_TASK_STK[LED1_STK_SIZE]; //创建任务堆栈空间
#define BUTTON_TASK_PRIO 3 //BUTTON任务优先级
#define BUTTON_STK_SIZE 64 //设置任务堆栈大小
OS_STK BUTTON_TASK_STK[BUTTON_STK_SIZE]; //创建任务堆栈空间
#define BEEP_TASK_PRIO 5 //BEEP任务优先级
#define BEEP_STK_SIZE 64 //设置任务堆栈大小
OS_STK BEEP_TASK_STK[BEEP_STK_SIZE]; //创建任务堆栈空间
void start_task(void *pdata);
void button_task(void *pdata); //任务2 按键
void RCC_Init()
{
SystemInit();
}
int main()
{
delay_init(); //延时初始化
RCC_Init(); //系统时钟初始化
LED_Init(); //端口初始化
BEEP_Init(); //端口初始化
key_init();
OSInit(); //初始化UCOS操作系统
OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1]
,START_TASK_PRIO); //创建起始任务
OSStart(); //启动ucos操作系统
}
void start_task(void *pdata) //开始任务
{
OS_CPU_SR cpu_sr=0;
pdata=pdata;
OSStatInit(); //初始化统计任务
OS_ENTER_CRITICAL(); //进入临界区,中断无法打断
OSTaskCreate(led1_task,(void *)0,(OS_STK *)&LED1_TASK_STK[LED1_STK_SIZE-1]
,LED1_TASK_PRIO);
OSTaskCreate(beep_task,(void *)0,(OS_STK *)&BEEP_TASK_STK[BEEP_STK_SIZE-1]
,BEEP_TASK_PRIO);
OSTaskCreate(button_task,(void *)0,(OS_STK *)&BUTTON_TASK_STK[BUTTON_STK_SIZE-1]
,BUTTON_TASK_PRIO);
OSTaskSuspend(START_TASK_PRIO); //挂起起始任务
OS_EXIT_CRITICAL(); //退出临界区,中断可以打断
}
void button_task(void *pdata) //任务2 按键
{
pdata=pdata;
while(1)
{
if(k_up==1) //挂起
{
delay_ms(10);
if(k_up==1)
{
OSTaskSuspend(LED1_TASK_PRIO); //挂起LED1任务
}
while(k_up);
}
if(k_down==0) //恢复
{
delay_ms(10);
if(k_down==0)
{
OSTaskResume(LED1_TASK_PRIO); //恢复LED1任务
}
while(!k_down);
}
if(k_left==0) //删除
{
delay_ms(10);
if(k_left==0)
{
OSTaskDelReq(BEEP_TASK_PRIO); //发送删除蜂鸣器任务请求
}
while(!k_left);
}
if(k_right==0) //创建任务
{
delay_ms(10);
if(k_right==0)
{
OSTaskCreate(beep_task,(void *)0,(OS_STK *)&BEEP_TASK_STK[BEEP_STK_SIZE-1]
,BEEP_TASK_PRIO);
}
while(!k_right);
}
delay_ms(10);
}
}
复制代码
所有资料51hei提供下载:
元件库和封装库.zip
(76.6 KB, 下载次数: 22)
2018-7-23 15:19 上传
点击文件名下载附件
封装
下载积分: 黑币 -5
UCOSII实验例程.7z
(287.36 KB, 下载次数: 56)
2023-3-11 20:14 上传
点击文件名下载附件
ucosii
下载积分: 黑币 -5
WK2204开发文档说明书.pdf
(214.64 KB, 下载次数: 18)
2018-7-23 15:19 上传
点击文件名下载附件
WK2204文档
下载积分: 黑币 -5
作者:
x88484532
时间:
2020-4-4 09:42
下了学习了,谢谢。
作者:
温存723
时间:
2020-4-6 01:29
前来学习
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1