標(biāo)題:
UCOSII的STM32實(shí)驗(yàn)例程
[打印本頁(yè)]
作者:
piao100
時(shí)間:
2018-7-23 15:21
標(biāo)題:
UCOSII的STM32實(shí)驗(yàn)例程
包括UCOSII實(shí)驗(yàn)例程!
0.png
(46.98 KB, 下載次數(shù): 38)
下載附件
2018-7-23 22:51 上傳
單片機(jī)源程序如下:
#include "public.h"
#define START_TASK_PRIO 10 //開(kāi)始任務(wù)優(yōu)先級(jí)
#define START_STK_SIZE 64 //設(shè)置任務(wù)堆棧大小
OS_STK START_TASK_STK[START_STK_SIZE]; //創(chuàng)建任務(wù)堆?臻g
#define LED1_TASK_PRIO 1 //led1任務(wù)優(yōu)先級(jí)
#define LED1_STK_SIZE 64 //設(shè)置任務(wù)堆棧大小
OS_STK LED1_TASK_STK[LED1_STK_SIZE]; //創(chuàng)建任務(wù)堆棧空間
#define BUTTON_TASK_PRIO 3 //BUTTON任務(wù)優(yōu)先級(jí)
#define BUTTON_STK_SIZE 64 //設(shè)置任務(wù)堆棧大小
OS_STK BUTTON_TASK_STK[BUTTON_STK_SIZE]; //創(chuàng)建任務(wù)堆?臻g
#define BEEP_TASK_PRIO 5 //BEEP任務(wù)優(yōu)先級(jí)
#define BEEP_STK_SIZE 64 //設(shè)置任務(wù)堆棧大小
OS_STK BEEP_TASK_STK[BEEP_STK_SIZE]; //創(chuàng)建任務(wù)堆?臻g
void start_task(void *pdata);
void button_task(void *pdata); //任務(wù)2 按鍵
void RCC_Init()
{
SystemInit();
}
int main()
{
delay_init(); //延時(shí)初始化
RCC_Init(); //系統(tǒng)時(shí)鐘初始化
LED_Init(); //端口初始化
BEEP_Init(); //端口初始化
key_init();
OSInit(); //初始化UCOS操作系統(tǒng)
OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1]
,START_TASK_PRIO); //創(chuàng)建起始任務(wù)
OSStart(); //啟動(dòng)ucos操作系統(tǒng)
}
void start_task(void *pdata) //開(kāi)始任務(wù)
{
OS_CPU_SR cpu_sr=0;
pdata=pdata;
OSStatInit(); //初始化統(tǒng)計(jì)任務(wù)
OS_ENTER_CRITICAL(); //進(jìn)入臨界區(qū),中斷無(wú)法打斷
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); //掛起起始任務(wù)
OS_EXIT_CRITICAL(); //退出臨界區(qū),中斷可以打斷
}
void button_task(void *pdata) //任務(wù)2 按鍵
{
pdata=pdata;
while(1)
{
if(k_up==1) //掛起
{
delay_ms(10);
if(k_up==1)
{
OSTaskSuspend(LED1_TASK_PRIO); //掛起LED1任務(wù)
}
while(k_up);
}
if(k_down==0) //恢復(fù)
{
delay_ms(10);
if(k_down==0)
{
OSTaskResume(LED1_TASK_PRIO); //恢復(fù)LED1任務(wù)
}
while(!k_down);
}
if(k_left==0) //刪除
{
delay_ms(10);
if(k_left==0)
{
OSTaskDelReq(BEEP_TASK_PRIO); //發(fā)送刪除蜂鳴器任務(wù)請(qǐng)求
}
while(!k_left);
}
if(k_right==0) //創(chuàng)建任務(wù)
{
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);
}
}
復(fù)制代碼
所有資料51hei提供下載:
元件庫(kù)和封裝庫(kù).zip
(76.6 KB, 下載次數(shù): 22)
2018-7-23 15:19 上傳
點(diǎn)擊文件名下載附件
封裝
下載積分: 黑幣 -5
UCOSII實(shí)驗(yàn)例程.7z
(287.36 KB, 下載次數(shù): 56)
2023-3-11 20:14 上傳
點(diǎn)擊文件名下載附件
ucosii
下載積分: 黑幣 -5
WK2204開(kāi)發(fā)文檔說(shuō)明書(shū).pdf
(214.64 KB, 下載次數(shù): 18)
2018-7-23 15:19 上傳
點(diǎn)擊文件名下載附件
WK2204文檔
下載積分: 黑幣 -5
作者:
x88484532
時(shí)間:
2020-4-4 09:42
下了學(xué)習(xí)了,謝謝。
作者:
溫存723
時(shí)間:
2020-4-6 01:29
前來(lái)學(xué)習(xí)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1