标题: STM32土壤湿度传感器Res式1.2 程序 [打印本页]

作者: 超大侠    时间: 2021-6-13 22:56
标题: STM32土壤湿度传感器Res式1.2 程序
土壤湿度传感器Res式1.2
  1. #include "delay.h"
  2. #include "stm32f10x.h"
  3. #include "OLED_I2C.h"
  4. #include "led.h"
  5. #include "usart.h"        
  6. #include "string.h"        
  7. #include "adc.h"
  8. #include "timer.h"
  9. #include "sys.h"
  10. #include "exti.h"
  11. #include "beep.h"

  12. float temp_avrg=0;
  13. int temp_LL=40;
  14. int shidu;
  15. int num;
  16. int num_adj=1;
  17. int j=0;
  18. int times;
  19. float total=0;

  20. void Hardware_Init(void)     //初始化
  21. {        
  22.         Delay_Init();                     //延时函数初始化
  23.         
  24.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  25.         
  26.         I2C_Configuration();         //I2C接口初始化
  27.         
  28.         OLED_Init();                 //OLED初始化
  29.         
  30.         Led_Init();                                                                         //LED接口初始化
  31.         
  32.         uart_init(9600);                                                 //串口初始化
  33.         
  34.         Adc_Init();                                                                         //ADC初始化
  35.         
  36.         EXTIX_Init();                                                                 //外部中断初始化        
  37.         
  38.         BEEP_Init();                                                                 //蜂鸣器初始化
  39. }

  40. void OLED_Show(void)                                        //设置OLED显示
  41. {
  42.         unsigned char i;
  43.         extern const unsigned char BMP2[];
  44.         OLED_CLS();                     //清屏
  45.         OLED_DrawBMP(0,0,128,8,(unsigned char *)BMP2);//显示惠州学院图标
  46.         
  47.         for(i=10;i<14;i++)             //显示校训
  48.                 OLED_ShowCN(0,2*(i-10),i);
  49.         
  50.         for(i=14;i<18;i++)             //显示校训
  51.                 OLED_ShowCN(112,2*(i-14),i);
  52.         
  53.         DelayMs(2500);
  54.         OLED_CLS();                    //清屏
  55.         
  56.         for(i=0;i<4;i++)             //显示惠州学院
  57.                 OLED_ShowCN(31+i*16,1,i);
  58.         
  59.         for(i=18;i<21;i++)             //显示曾钰琢
  60.                 OLED_ShowCN(39+(i-18)*16,5,i);
  61.         
  62.         DelayMs(1500);
  63.         OLED_CLS();                    //清屏
  64.         
  65.         for(i=4;i<10;i++)             //显示土壤湿度检测
  66.                 OLED_ShowCN(14+(i-4)*16,0,i);
  67.                
  68.         for(i=6;i<8;i++)               //显示湿度
  69.                 OLED_ShowCN(0+(i-6)*16,3,i);
  70.                
  71.         OLED_ShowStr(36,4,":",1);
  72.         OLED_ShowStr(90,4,"%",1);
  73.         
  74.         /*显示湿度下限*/
  75.         for(i=6;i<8;i++)               
  76.                 OLED_ShowCN(0+(i-6)*16,6,i);
  77.         for(i=21;i<23;i++)               
  78.                 OLED_ShowCN(32+(i-21)*16,6,i);
  79.         /*显示湿度下限*/
  80.         
  81.         OLED_ShowStr(70,7,":",1);
  82.         OLED_ShowStr(110,7,"%",1);
  83.         OLED_ShowNum(75,7,temp_LL,1);//湿度下限初值
  84.         
  85.         for(i=6;i<8;i++)                                                        //显示定值
  86.         {
  87.                 //OLED_ShowCN(0+(i-6)*16,4,i);
  88.         }
  89.         //OLED_ShowStr(36,5,":   cm",1);
  90.         //OLED_ShowNum(50,3,temp_avrg,1);
  91.         for(i=8;i<10;i++)            //显示报警
  92.         {
  93.                 //OLED_ShowCN(0+(i-8)*16,6,i);
  94.         }        
  95.         //OLED_ShowStr(36,7,":",1);
  96. }

  97. /*void HC05_Prepare(void)        //蓝牙连接
  98. {
  99.         DelayMs(1000);        //等待蓝牙模块上电稳定
  100.          while(HC05_Init())                 //初始化ATK-HC05模块  
  101.         {
  102.                 DelayMs(100);
  103.         }
  104.         DelayMs(100);
  105. }*/

  106. int main(void)
  107. {
  108.         num=50;        
  109.          Hardware_Init();      //初始化
  110.         printf("\r\n初始化完成\r\n");
  111.         OLED_Show();          //设置OLED显示
  112.         //HC05_Prepare();       //蓝牙连接
  113.         //USART3_RX_STA=0;
  114.          //printf("\r\n显示\r\n");
  115.         //Timer2_Init(4999,7199);//10Khz的计数频率,计数到5000为500ms
  116.          while(1)
  117.         {
  118.                  Get_Adc_Average(1,10);
  119.                 DelayMs(500);
  120.                
  121.                 if(shidu>10000)
  122.                         shidu=10000;
  123.                
  124.                 if(shidu<0)
  125.                         shidu=0;
  126.                
  127.                 OLED_ShowNum(60,4,shidu%100,1);
  128.                 OLED_ShowNum(40,4,shidu/100,1);
  129.                 OLED_ShowStr(64,4,".",1);
  130.                
  131.                 if(shidu/100<temp_LL)
  132.                 {
  133.                         BEEP=0;
  134.                         DelayMs(500);
  135.                         BEEP=1;
  136.                         DelayMs(500);
  137.                         
  138.                 }
  139.                 printf("\r\n您发送的消息为:%f\r\n\r\n",temp_avrg);
  140.                 printf("\r\n您发送的消息为:%d\r\n\r\n",shidu);
  141.                
  142.          }  
  143.         /*{
  144.                 if(USART3_RX_STA&0X80)                        //接收到一次数据了
  145.                 {
  146.                         Usart3_Data();     //蓝牙控制,启动/关闭超声波测距
  147.                 }                                                                                                                                                                        
  148.     DelayMs(1000);
  149.         }        */
  150. }
复制代码

代码: 土壤湿度传感器Res式1.2.rar (327.26 KB, 下载次数: 59)

作者: 641572636    时间: 2021-6-15 18:41
你好,如果不接LED和蜂鸣器,程序中,这两个代码要屏蔽吗
作者: 超大侠    时间: 2021-6-27 19:17
641572636 发表于 2021-6-15 18:41
你好,如果不接LED和蜂鸣器,程序中,这两个代码要屏蔽吗

不影响

作者: 沈俊霄    时间: 2022-2-24 01:38
你好lcd采用的是什么样的

作者: 超大侠    时间: 2023-11-21 16:40
沈俊霄 发表于 2022-2-24 01:38
你好lcd采用的是什么样的

lcd12864 液晶显示




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1