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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2447|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

RT系統(tǒng)+STM32+紅外控制+1.44寸顯示屏 源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:743843 發(fā)表于 2021-11-28 15:44 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
​ 本次實(shí)驗(yàn)是為了了解RT-thread的工作流程以及簡(jiǎn)單的實(shí)驗(yàn)RT來(lái)進(jìn)行一個(gè)學(xué)習(xí)

實(shí)驗(yàn)材料:STM32c8t6+1.44寸TFT顯示屏+紅外傳感器+分光棱鏡
實(shí)驗(yàn)結(jié)果:可以進(jìn)行紅外定時(shí)選擇,實(shí)驗(yàn)成功分為三個(gè)線程做任務(wù)


線程一:開(kāi)機(jī)時(shí)間顯示
  1. //APP1
  2. static void led1_thread_entry(void* parameter)
  3. {
  4.   rt_uint8_t hour=0,munite=0,second=0;
  5.         rt_uint8_t dispBuff[100];
  6.          //Show_Picture();
  7.         Demo_Menu();
  8.         while (1)
  9.         {
  10.          if(second<59) {
  11.                  second++;
  12.         //                         if(time == 10){
  13.         //                           OLED_Clear();
  14.         //                                 time = 0;
  15.         //                                 os_app_resume(APP_03);  //簡(jiǎn)單定時(shí)10*500ms=5s后恢復(fù)運(yùn)行APP_02 ,掛起自己。
  16.         //                           os_app_pend(APP_01);  
  17.         //                                }
  18.          }
  19.          else
  20.          {
  21.                  second=0;
  22.                  munite++;
  23.                  if(munite==60)
  24.                  {
  25.                          second=0;
  26.                          munite=0;
  27.                          hour++;
  28.                          if(hour==24)
  29.                          {
  30.                                  second=0;
  31.                                  munite=0;
  32.                                  hour=0;
  33.                          }
  34.                  }
  35.         }

  36.         sprintf(dispBuff,"-%02d:%02d:%02d-",hour,munite,second);        
  37.   Draw_Font24B(4,30,RED,dispBuff);        
  38. //        Draw_Font16B(4,40,YELLOW,dispBuff);//8*16 “ABC”
  39.         rt_thread_delay(1000);   /* 延時(shí)500個(gè)tick */        

  40.         }
  41. }
復(fù)制代碼


線程二:紅外遙控判斷
  1. //APP2
  2. static void APP2_thread_entry(void* parameter)
  3. {        
  4.   rt_err_t uwRet = RT_EOK;        
  5.         rt_uint8_t key=0;
  6.         rt_uint8_t dispBuff[100];
  7.         rt_uint8_t t=0;        
  8.         rt_uint8_t *str=0;
  9.         while(1)
  10.         {

  11.           key=Remote_Scan();
  12.                         
  13.                 if(key)
  14.                 {        
  15.                 switch(key)
  16.                         {
  17.                                 case 162:
  18.                                                 //1
  19.                                                 str= "*計(jì)時(shí)器 10 min*";
  20.                                                 munite = 10;
  21.                                                 hour=0;               
  22.                                                 second=0;
  23.             break;
  24.         
  25.         case 98:
  26.                                                 //2                                       
  27.                                           str= "*計(jì)時(shí)器 20 min*";
  28.             munite = 20;
  29.                                                 hour=0;        
  30.                                                 second=0;
  31.             break;
  32.         
  33.         case 226://3
  34.                                          str= "*計(jì)時(shí)器 30 min*";
  35.                                          munite = 30;
  36.                                         hour=0;        
  37.                                                 second=0;
  38.             break;
  39.         
  40.         case 34://4
  41.                                          str= "*計(jì)時(shí)器 40 min*";
  42.                                                 munite = 40;
  43.                                           hour=0;        
  44.                                     second=0;
  45.             break;
  46.         
  47.         case 2://5
  48.                                          str= "*計(jì)時(shí)器 50 min*";
  49.            munite = 50;
  50.                                          hour=0;
  51.                                          second=0;                        
  52.             break;
  53.         
  54.         case 194://6
  55.                                          str= "*計(jì)時(shí)器 60 min*";
  56.            munite = 60;
  57.                                         hour=0;
  58.                                         second=0;
  59.             break;
  60.         
  61.         case 224://7
  62.                                          str= "*計(jì)時(shí)器 90 min*";
  63.                                          hour = 1;
  64.            munite = 30;
  65.                                          second=0;
  66.             break;
  67.         
  68.         case 168://8
  69.                                          str= "*  計(jì)時(shí)器 2 h *";
  70.            hour = 1;
  71.                                         munite = 60;
  72.                                         second=0;
  73.             break;
  74.         
  75.         case 144://9
  76.                                          str= "*  計(jì)時(shí)器 3 h *";
  77.            hour = 2;
  78.                                                 munite = 60;
  79.                                                 second=0;
  80.             break;
  81.         
  82.         case 152:
  83.                                          str= "detected code 0";
  84.             
  85.             break;
  86.         
  87.         case 104:
  88.                                          str= "detected code *";
  89.          
  90.             break;
  91.         
  92.         case 176:
  93.                                          str= "detected code #";
  94.            
  95.             break;
  96.                
  97.         case 24:
  98.                                          str= "detected code ↑";
  99.          
  100.             break;
  101.                
  102.         case 16:
  103.                                          str= "detected code ←";
  104.             
  105.             break;
  106.         
  107.         case 74:
  108.                                           str= "detected code ↓";
  109.          
  110.             break;
  111.         
  112.         case 90:
  113.                                           str= "detected code →";
  114.             break;
  115.         
  116.         case 56:
  117.             str= "detected code OK ";
  118.             break;
  119.         
  120.         default:
  121.                                           str= "EMOURE";
  122.          
  123.             break;

  124.                         }

  125. //                        uwRet = rt_thread_resume(APP3_thread);/* 恢復(fù)APP3線程! */
  126. //                        if(RT_EOK == uwRet)
  127. //                        {
  128. //                                rt_kprintf("恢復(fù)APP3線程成功!\n");
  129. //                        }
  130. //                        else
  131. //                        {
  132. //                                rt_kprintf("恢復(fù)APP3線程失敗!失敗代碼:0x%lx\n",uwRet);
  133. //                        }
  134.                         Draw_Font16B(4,100,BRRED,str);        //顯示SYMBOL
  135.                 }

  136.         }

  137. }
復(fù)制代碼

線程三:計(jì)時(shí)器

  1. //APP3
  2. static void APP3_thread_entry(void* parameter)
  3. {
  4.         
  5.         rt_uint8_t dispBuff[100];
  6.   while (1)
  7.     {
  8.            if(second>0) {
  9.                          second--;
  10.                  }
  11.                  else
  12.                  {
  13.                          second=59;
  14.                          munite--;
  15.                          //time++;
  16.                          if(munite==0)
  17.                          {
  18.                                  munite=60;
  19.                            second=59;
  20.                                  
  21.                                  hour--;
  22.                                  if(hour==0)
  23.                                  {
  24.                                          munite=0;
  25.                              second=0;
  26. //                                         uwRet = rt_thread_suspend(APP3_thread);/* 掛起APP3線程 */
  27. //                                        if(RT_EOK == uwRet)
  28. //                                        {
  29. //                                                rt_kprintf("掛起APP3線程成功!\n");
  30. //                                        }
  31. //                                        else
  32. //                                        {
  33. //                                                rt_kprintf("掛起APP3線程失!失敗代碼:0x%lx\n",uwRet);
  34. //                                        }
  35.                                  }
  36.                                 
  37.                         
  38.                          }
  39.     }

  40.                 sprintf(dispBuff," time:%02d:%02d:%02d",hour,munite,second);               
  41.                 Draw_Font16B(4,80,YELLOW,dispBuff);//8*16 “ABC”
  42.           rt_thread_delay(980);   /* 延時(shí)500個(gè)tick */        

  43.     }
  44. }
復(fù)制代碼

代碼下載1:01.RT紅外定時(shí)器.zip-OS文檔類資源-CSDN下載
​代碼下載2: 代碼.7z (619.56 KB, 下載次數(shù): 16)

評(píng)分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产91网址 | 日韩最新网站 | 亚洲精品资源 | 91资源在线| 久久精品中文 | www精品| 亚洲一区二区三区久久 | 中文字幕在线播放第一页 | 99精品久久| 日韩一区二区三区在线 | 久久精品亚洲成在人线av网址 | 亚洲欧美在线视频 | 国产欧美精品一区二区三区 | av在线三级 | 色又黄又爽网站www久久 | 日韩美女爱爱 | 久久久视频在线 | 亚洲视频中文字幕 | 午夜无码国产理论在线 | 国产精品久久在线 | 超碰网址 | 一级片在线免费看 | 91精品国产综合久久婷婷香蕉 | 一级电影免费看 | 成人精品鲁一区一区二区 | 亚洲一区二区视频 | 亚洲久久一区 | 天天色天天色 | 国产美女精品视频 | www一级片| 午夜精品 | 成人免费淫片aa视频免费 | 亚洲一二三区精品 | 成人性视频免费网站 | 久久国产精品-国产精品 | 午夜久久 | 成人精品国产免费网站 | 国产高清自拍视频在线观看 | 日韩美香港a一级毛片免费 国产综合av | 九九久久精品 | 亚洲一区二区国产 |