找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3254|回复: 1
收起左侧

stm32驱动sht30代码

[复制链接]
ID:536847 发表于 2019-5-13 12:56 | 显示全部楼层 |阅读模式
stm32驱动sht30

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "rs485.h"
  6. #include "stm32f10x.h"
  7. #include "SHT30.h"
  8. #include "bsp_i2c_gpio.h"

  9. extern float Temperature;  //温度
  10. extern float Humidity;                //湿度
  11. u16 T,H;
  12. void Timer3_Init(u16 arr,u16 psc);

  13. /****************************/
  14.         u8  Com_cjxy[9]={0xFF,0X01,0x86,0x00,0x00,0x00,0x00,0x00,0X79};//读取 O2 03 C2H4 传感器数据
  15.        
  16.         u8 co2buf[9]={0xff,0x01,0x86,0,0,0,0,0,0x79};  //-CO2   读取气体浓度值
  17.        
  18. /****************************/
  19.         u8 USART1_BZ_1=0;
  20.         u8 USART2_BZ_2=0;
  21.         u8 USART3_BZ_3=0;
  22.         u8 USART4_BZ_4=0;
  23.         u8 USART5_BZ_5=0;
  24.        
  25. /******************************/
  26.         u8 Usart3_Rx_Cnt;//接收数量                 
  27.         u8 Usart4_Rx_Cnt;//接收数量                 
  28.         u8 Usart5_Rx_Cnt;//接收数量       

  29. /***************************/
  30. //5种气体传感器采集标志位
  31.         u8  O2_cjbz;           //
  32.         u8        C02_cjbz;
  33.         u8        O3_cjbz;
  34.         u8        C2H4_cjbz;
  35.         u8        Humi_cjbz;  //空气湿度


  36.         u8         xhxs; //循环显示
  37.        
  38.         u8 T_cgjlx;                  //传感器类型                  12位
  39.         u8 I_lkh;                           //冷库号                            13位       
  40.        
  41. /********************************************/

  42. u8 timcou,times,timem,timeh; // 时间标志 ,秒,分钟,小时

  43. /********************************************/

  44. u8         Com_protocol[22]={
  45.                                                                                                         0XFE,0XFE,                         //
  46.                                                                                                         0,0,0X03,0X02,  //
  47.                                                                                                         0,0,0,0,
  48.                                                                                                         0,//11命令
  49.                                                                                                         0,//12 T
  50.                                                                                                         0,//13 I
  51.                                                                                                         0,//14 L
  52.                                                                                                         0,//15 D
  53.                                                                                                         0,//16
  54.                                                                                                         0,//17
  55.                                                                                                         0,//17
  56.        
  57.                                                                                         };

  58.                                                                                                
  59. void        Test_uart3();
  60.                                                                                        
  61. int main(void)
  62. {
  63.         delay_init();                     //延时函数初始化
  64.         LED_Init();                           //初始化与LED连接的硬件接口
  65.         Timer3_Init(4999,7199);  //10Khz 的计数频率,计数到 5000 为 500ms
  66.         uart1_init(9600);         //串口初始化为9600
  67.         RS485_Init(9600);                //初始化RS485串口2
  68.         uart3_init(9600);         //串口初始化为9600
  69.         uart4_init(9600);         //串口初始化为9600
  70.         uart5_init(9600);         //串口初始化为9600
  71.         delay_ms(100);                        //此处延时必须要有100ms ,不然SHT30 读数100
  72.         Sht30_Init();
  73.         printf( "Start testing"); //浓度
  74.         delay_ms(1000);
  75.         while(1)
  76.         {
  77.                         Sht30_ReadData();
  78.                         Convert_sht30();
  79.                         delay_ms(500);
  80.                         if(!USART1_BZ_1)
  81.                         {
  82.                                 Usart1_Send(Com_cjxy,9);// 将传感器数据通过串口2打印输出
  83.                                 Usart3_Send(Com_cjxy,9);// 将传感器数据通过串口2打印输出
  84.                                 Uart4_Send(Com_cjxy,9);// 将传感器数据通过串口2打印输出
  85.                                 Uart5_Send(co2buf,9);// 将传感器数据通过串口2打印输出
  86.                                 USART1_BZ_1=0;
  87.                                
  88.                         }

  89.                                 if((xhxs==1))//打印输出传感器参数
  90.                                 {
  91.                                         printf("O2   :%d\r\n",MO2); //浓度
  92.                                         printf("CO2  :%d\r\n",ME2O2); //浓度
  93.                                         printf("O3   :%d\r\n",MO3); //浓度
  94.                                         printf("C2H4 :%d\r\n",MC2H4); //浓度
  95.                                         printf("Humi :%.1f%\r\n",Humidity); //湿度
  96.                                         printf("temp :%.1f%\r\n",Temperature); //温度
  97.                                         printf("       \r\n");
  98.                                         T=Temperature;        H=Humidity;  //温度 湿度
  99.                                         xhxs=0;
  100.                                 }
  101.                 }
  102.         }
复制代码

所有资料51hei提供下载:
1.2znlk.7z (204.02 KB, 下载次数: 53)


回复

使用道具 举报

ID:1 发表于 2019-5-14 04:19 | 显示全部楼层
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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