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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于STM32和ucos系統的室內環境檢測源程序

[復制鏈接]
跳轉到指定樓層
樓主
本系統是基于STM32F1系列的
電路原理圖如下:

源碼在壓縮包里可自取
  1. #include "main.h"
  2. #include "usart.h"
  3. #include "stdio.h"
  4. #include "lcd.h"
  5. #include "GUI.h"
  6. #include "tu.h"
  7. #include "adc.h"
  8. #include "dht11.h"


  9. void BSP_Init(void)
  10. {
  11.         ADC_Config();


  12.         LED_Config();
  13.         BEEP_Config();
  14.          
  15.         Usart1_Config(9600);
  16.         LCD_Init();
  17.         Paint_Bmp(20,10,64,64,gImage_tu);
  18.         Show_Str(30,40,BRRED,RED,"環境傳感器",16,11);
  19.         LCD_Clear(WHITE);
  20.         
  21.         
  22.         
  23. }


  24. #define TASK_PRIO     4          //設置優先級
  25. #define TASK_STK_SIZE   128       //堆棧空間大小
  26. OS_STK  taskstk[TASK_STK_SIZE];       //定義堆棧空間
  27. void TASK_START(void *pdata);

  28. //#define LED_PRIO     9          //設置優先級
  29. //#define LED_STK_SIZE   64       //堆棧空間大小
  30. //OS_STK  ledstk[LED_STK_SIZE];       //定義堆棧空間
  31. //void LED_TASK(void *pdata);

  32. //#define LED_PRIO1     8         //設置優先級
  33. //#define LED1_STK_SIZE   64       //堆棧空間大小
  34. //OS_STK  led1stk[LED1_STK_SIZE];       //定義堆棧空間
  35. //void LED_TASK1(void *pdata);

  36. //#define USART_PRIO     7         //設置優先級
  37. //#define USART_STK_SIZE   64       //堆棧空間大小
  38. //OS_STK  usartstk[USART_STK_SIZE];       //定義堆棧空間
  39. //void USART_TASK(void *pdata);

  40. #define ADC_PRIO     5         //設置優先級
  41. #define ADC_STK_SIZE   128       //堆棧空間大小
  42. OS_STK  adcstk[ADC_STK_SIZE];       //定義堆棧空間
  43. void ADC_TASK(void *pdata);

  44. #define DHT11_PRIO     6         //設置優先級
  45. #define DHT11_STK_SIZE   128       //堆棧空間大小
  46. OS_STK  dht11stk[ADC_STK_SIZE];       //定義堆棧空間
  47. void DHT11_TASK(void *pdata);

  48. /**
  49.   * @brief  Main program.
  50.   * @param  None
  51.   * @retval None
  52.   */
  53. int main(void)
  54. {
  55.         BSP_Init();
  56. //while(1)
  57. {
  58.         // BSP_Init();
  59.         OSInit();   //初始化ucos-ii
  60.         //創建任務
  61.         OSTaskCreate(TASK_START,NULL,&taskstk[TASK_STK_SIZE-1],TASK_PRIO);
  62.         OS_CPU_SysTickInit();
  63.         OSStart(); //啟動多任務環境
  64. }
  65. }

  66. void TASK_START(void *pdata)
  67. {
  68.         pdata = pdata;
  69.         OS_CPU_SR cpu_sr;
  70.         while(1)
  71.         {
  72.         OS_ENTER_CRITICAL();  //進入臨界段  --關中斷
  73. //        OSTaskCreate(LED_TASK,NULL,&ledstk[LED_STK_SIZE-1],LED_PRIO);

  74.         //OSTaskCreate(USART_TASK,NULL,&usartstk[USART_STK_SIZE-1],USART_PRIO);
  75.         OSTaskCreate(ADC_TASK,NULL,&adcstk[ADC_STK_SIZE-1],ADC_PRIO);
  76. //  OSTaskCreate(LED_TASK1,NULL,&led1stk[LED1_STK_SIZE-1],LED_PRIO1);
  77.         OSTaskCreate(DHT11_TASK,NULL,&dht11stk[DHT11_STK_SIZE-1],DHT11_PRIO);

  78.         OS_EXIT_CRITICAL();  //退出臨界段  --開中斷
  79.         OSTaskSuspend(TASK_PRIO);
  80.         }
  81. }


  82. void LED_TASK(void *pdata)
  83. {
  84.         pdata = pdata; //防止編譯器報警告
  85.         while(1)
  86.         {
  87.                 LED1_Toggle();
  88.                 OSTimeDlyHMSM(0,0,0,500);
  89.         }
  90. }
  91. void LED_TASK1(void *pdata)
  92. {
  93.         pdata = pdata; //防止編譯器報警告
  94.         while(1)
  95.         {
  96.                 LED2_Toggle();
  97.                 OSTimeDlyHMSM(0,0,0,500);
  98.         }
  99. }

  100. void ADC_TASK(void *pdata)
  101. {
  102.         u16 ADC_Val;
  103.         pdata=pdata;
  104.         char displsyData[20]={0};
  105.         while(1)
  106.         {
  107.                 ADC_Val=ADC_GetValue();
  108.                 printf("ADC_Value=%d\r\n",ADC_GetValue());
  109.                 sprintf(displsyData,"LCD_ADCValue=%d",ADC_Val);
  110.                 Show_Str(5,20,BRRED,YELLOW,(u8 *)displsyData,16,11);
  111.                 OSTimeDlyHMSM(0,0,0,500);
  112.         }
  113. }
  114. void DHT11_TASK(void *pdata)
  115. {
  116.         pdata=pdata;
  117.         u8 temp,hum;
  118.         char displsyData[20]={0};
  119.         char displsyData1[20]={0};
  120.         while(1)
  121.         {
  122.                 DHT11_ReadTAndH(&temp,&hum);
  123.                 printf("temp = %d\r\n,hum=%d\r\n",temp,hum);
  124.                 if(temp>10) BEEP(1);
  125.                 sprintf(displsyData,"Temp=%d",temp);
  126.                
  127.                 Show_Str(5,50,BRRED,YELLOW,(u8 *)displsyData,16,11);
  128.                 sprintf(displsyData1,"Hum=%d",hum);
  129.                 Show_Str(5,80,BRRED,YELLOW,(u8 *)displsyData1,16,11);
  130.                 OSTimeDlyHMSM(0,0,2,0);
  131.                
  132.                
  133.         }
  134.         
  135. }
復制代碼
全部程序51hei下載地址:
例程.7z (277.75 KB, 下載次數: 34)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:328014 發表于 2020-6-11 14:19 | 只看該作者
好資料 樓主你好,壓縮包里面 沒有仿真工程啊  能分享一下嗎?
回復

使用道具 舉報

板凳
ID:774631 發表于 2020-6-11 16:17 | 只看該作者
請問樓主,能分享一下你的仿真程序嗎?謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人一区二免费视频软件 | 国产成年人小视频 | 91久久夜色精品国产网站 | 欧美精品电影一区 | 在线国产精品一区 | 蜜桃精品在线 | 国产福利在线看 | 一区精品国产欧美在线 | 亚洲欧美日韩久久 | 久久精品二区亚洲w码 | 精品九九| 成年免费大片黄在线观看岛国 | 天天综合久久 | 亚洲成人网在线播放 | 久在线| 国产精品三级 | 日韩aⅴ在线观看 | 欧美精品一区二区三区四区 在线 | 亚洲天堂一区 | 免费午夜剧场 | 亚洲高清视频一区二区 | 视频在线一区 | 中文精品一区二区 | 91精品久久久 | 亚洲国产精品久久久久 | 国产欧美精品一区二区 | 亚洲一区二区三区在线 | 国产精品地址 | 久久国产香蕉 | 亚洲国产欧美91 | 色天堂视频 | 秋霞av国产精品一区 | 久久久精品一区 | 国产美女网站 | av超碰| 国产99久久久国产精品下药 | 国产视频第一页 | 久久久精选 | 国产成人精品一区二区三区网站观看 | 午夜电影网站 | 新疆少妇videos高潮 |