找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2897|回复: 4
打印 上一主题 下一主题
收起左侧

STM32土壤湿度传感器Res式1.2 程序

[复制链接]
跳转到指定楼层
楼主
ID:640768 发表于 2021-6-13 22:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
土壤湿度传感器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, 下载次数: 58)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:915979 发表于 2021-6-15 18:41 | 只看该作者
你好,如果不接LED和蜂鸣器,程序中,这两个代码要屏蔽吗
回复

使用道具 举报

板凳
ID:640768 发表于 2021-6-27 19:17 | 只看该作者
641572636 发表于 2021-6-15 18:41
你好,如果不接LED和蜂鸣器,程序中,这两个代码要屏蔽吗

不影响
回复

使用道具 举报

地板
ID:825263 发表于 2022-2-24 01:38 | 只看该作者
你好lcd采用的是什么样的
回复

使用道具 举报

5#
ID:640768 发表于 2023-11-21 16:40 | 只看该作者
沈俊霄 发表于 2022-2-24 01:38
你好lcd采用的是什么样的

lcd12864 液晶显示
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表