久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3694|回復: 2
打印 上一主題 下一主題
收起左側

UCOSII的STM32實驗例程

[復制鏈接]
跳轉到指定樓層
樓主
ID:377939 發(fā)表于 2018-7-23 15:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
包括UCOSII實驗例程!


單片機源程序如下:
  1. #include "public.h"

  2. #define START_TASK_PRIO 10     //開始任務優(yōu)先級
  3. #define START_STK_SIZE 64     //設置任務堆棧大小
  4. OS_STK         START_TASK_STK[START_STK_SIZE];          //創(chuàng)建任務堆棧空間

  5. #define LED1_TASK_PRIO 1     //led1任務優(yōu)先級
  6. #define LED1_STK_SIZE 64     //設置任務堆棧大小
  7. OS_STK         LED1_TASK_STK[LED1_STK_SIZE];          //創(chuàng)建任務堆棧空間

  8. #define BUTTON_TASK_PRIO 3     //BUTTON任務優(yōu)先級
  9. #define BUTTON_STK_SIZE 64     //設置任務堆棧大小
  10. OS_STK         BUTTON_TASK_STK[BUTTON_STK_SIZE];          //創(chuàng)建任務堆棧空間


  11. #define BEEP_TASK_PRIO 5     //BEEP任務優(yōu)先級
  12. #define BEEP_STK_SIZE 64     //設置任務堆棧大小
  13. OS_STK         BEEP_TASK_STK[BEEP_STK_SIZE];          //創(chuàng)建任務堆棧空間

  14. void start_task(void *pdata);
  15. void button_task(void *pdata);         //任務2 按鍵

  16. void RCC_Init()
  17. {
  18.         SystemInit();
  19. }
  20. int main()
  21. {
  22.         delay_init();         //延時初始化
  23.         RCC_Init();  //系統(tǒng)時鐘初始化
  24.         LED_Init();          //端口初始化
  25.         BEEP_Init();          //端口初始化
  26.         key_init();
  27.         OSInit();  //初始化UCOS操作系統(tǒng)
  28.         
  29.         OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1]
  30.         ,START_TASK_PRIO);  //創(chuàng)建起始任務
  31.         OSStart();   //啟動ucos操作系統(tǒng)                        
  32. }
  33. void start_task(void *pdata)    //開始任務
  34. {
  35.         OS_CPU_SR cpu_sr=0;
  36.         pdata=pdata;
  37.         OSStatInit();  //初始化統(tǒng)計任務
  38.         OS_ENTER_CRITICAL();  //進入臨界區(qū),中斷無法打斷

  39.         OSTaskCreate(led1_task,(void *)0,(OS_STK *)&LED1_TASK_STK[LED1_STK_SIZE-1]
  40.         ,LED1_TASK_PRIO);

  41.         OSTaskCreate(beep_task,(void *)0,(OS_STK *)&BEEP_TASK_STK[BEEP_STK_SIZE-1]
  42.         ,BEEP_TASK_PRIO);

  43.         OSTaskCreate(button_task,(void *)0,(OS_STK *)&BUTTON_TASK_STK[BUTTON_STK_SIZE-1]
  44.         ,BUTTON_TASK_PRIO);

  45.         OSTaskSuspend(START_TASK_PRIO);   //掛起起始任務
  46.         OS_EXIT_CRITICAL();  //退出臨界區(qū),中斷可以打斷
  47. }
  48. void button_task(void *pdata)         //任務2 按鍵
  49. {
  50.         pdata=pdata;
  51.         while(1)
  52.         {
  53.                 if(k_up==1)           //掛起
  54.                 {
  55.                         delay_ms(10);
  56.                         if(k_up==1)
  57.                         {
  58.                                 OSTaskSuspend(LED1_TASK_PRIO);   //掛起LED1任務                        
  59.                         }
  60.                         while(k_up);
  61.                 }
  62.                
  63.                 if(k_down==0)           //恢復
  64.                 {
  65.                         delay_ms(10);
  66.                         if(k_down==0)
  67.                         {
  68.                                 OSTaskResume(LED1_TASK_PRIO);   //恢復LED1任務                        
  69.                         }
  70.                         while(!k_down);
  71.                 }

  72.                 if(k_left==0)           //刪除
  73.                 {
  74.                         delay_ms(10);
  75.                         if(k_left==0)
  76.                         {
  77.                                 OSTaskDelReq(BEEP_TASK_PRIO);   //發(fā)送刪除蜂鳴器任務請求                        
  78.                         }
  79.                         while(!k_left);
  80.                 }

  81.                 if(k_right==0)           //創(chuàng)建任務
  82.                 {
  83.                         delay_ms(10);
  84.                         if(k_right==0)
  85.                         {
  86.                                 OSTaskCreate(beep_task,(void *)0,(OS_STK *)&BEEP_TASK_STK[BEEP_STK_SIZE-1]
  87.                                 ,BEEP_TASK_PRIO);                                
  88.                         }
  89.                         while(!k_right);
  90.                 }
  91.                 delay_ms(10);
  92.         }        
  93. }

復制代碼

所有資料51hei提供下載:
元件庫和封裝庫.zip (76.6 KB, 下載次數(shù): 22)
UCOSII實驗例程.7z (287.36 KB, 下載次數(shù): 56)
WK2204開發(fā)文檔說明書.pdf (214.64 KB, 下載次數(shù): 18)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:561907 發(fā)表于 2020-4-4 09:42 | 只看該作者
下了學習了,謝謝。
回復

使用道具 舉報

板凳
ID:259648 發(fā)表于 2020-4-6 01:29 | 只看該作者
前來學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.youjizz.com日韩 | 免费黄色av| 亚洲最大成人综合 | 成年免费大片黄在线观看岛国 | 亚洲午夜精品久久久久久app | 在线播放一区 | 国产成人精品久久二区二区 | 精品网站999 | 久久久久国产精品一区 | 亚洲大片 | 国内久久精品 | 久久久久久久久久久久91 | 欧美成人精品二区三区99精品 | 国产精品一区二区在线播放 | 久久夜色精品国产 | 在线91 | 日韩一区二区在线视频 | 在线观看免费av网站 | 亚洲免费在线观看 | 亚洲成人网在线 | 一区二区三区四区不卡 | 99亚洲综合| 九九热在线视频观看这里只有精品 | 国产9 9在线 | 中文 | 亚洲一区二区在线电影 | 亚洲免费观看视频网站 | 中文字幕精品一区二区三区精品 | 久久久久亚洲 | 国产精品自产av一区二区三区 | 欧美亚洲免费 | 在线国产欧美 | 亚洲一区二区三区四区五区中文 | 欧美精品国产一区二区 | 久久精品毛片 | 国产精品一区二区在线免费观看 | 激情毛片 | 午夜影院视频 | 99精品视频在线观看免费播放 | 国产偷录叫床高潮录音 | 涩涩视频在线看 | 欧美国产中文字幕 |