stm32驱动sht30
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "rs485.h"
- #include "stm32f10x.h"
- #include "SHT30.h"
- #include "bsp_i2c_gpio.h"
- extern float Temperature; //温度
- extern float Humidity; //湿度
- u16 T,H;
- void Timer3_Init(u16 arr,u16 psc);
- /****************************/
- u8 Com_cjxy[9]={0xFF,0X01,0x86,0x00,0x00,0x00,0x00,0x00,0X79};//读取 O2 03 C2H4 传感器数据
-
- u8 co2buf[9]={0xff,0x01,0x86,0,0,0,0,0,0x79}; //-CO2 读取气体浓度值
-
- /****************************/
- u8 USART1_BZ_1=0;
- u8 USART2_BZ_2=0;
- u8 USART3_BZ_3=0;
- u8 USART4_BZ_4=0;
- u8 USART5_BZ_5=0;
-
- /******************************/
- u8 Usart3_Rx_Cnt;//接收数量
- u8 Usart4_Rx_Cnt;//接收数量
- u8 Usart5_Rx_Cnt;//接收数量
- /***************************/
- //5种气体传感器采集标志位
- u8 O2_cjbz; //
- u8 C02_cjbz;
- u8 O3_cjbz;
- u8 C2H4_cjbz;
- u8 Humi_cjbz; //空气湿度
- u8 xhxs; //循环显示
-
- u8 T_cgjlx; //传感器类型 12位
- u8 I_lkh; //冷库号 13位
-
- /********************************************/
- u8 timcou,times,timem,timeh; // 时间标志 ,秒,分钟,小时
-
- /********************************************/
- u8 Com_protocol[22]={
- 0XFE,0XFE, //
- 0,0,0X03,0X02, //
- 0,0,0,0,
- 0,//11命令
- 0,//12 T
- 0,//13 I
- 0,//14 L
- 0,//15 D
- 0,//16
- 0,//17
- 0,//17
-
- };
-
- void Test_uart3();
-
- int main(void)
- {
- delay_init(); //延时函数初始化
- LED_Init(); //初始化与LED连接的硬件接口
- Timer3_Init(4999,7199); //10Khz 的计数频率,计数到 5000 为 500ms
- uart1_init(9600); //串口初始化为9600
- RS485_Init(9600); //初始化RS485串口2
- uart3_init(9600); //串口初始化为9600
- uart4_init(9600); //串口初始化为9600
- uart5_init(9600); //串口初始化为9600
- delay_ms(100); //此处延时必须要有100ms ,不然SHT30 读数100
- Sht30_Init();
- printf( "Start testing"); //浓度
- delay_ms(1000);
- while(1)
- {
- Sht30_ReadData();
- Convert_sht30();
- delay_ms(500);
- if(!USART1_BZ_1)
- {
- Usart1_Send(Com_cjxy,9);// 将传感器数据通过串口2打印输出
- Usart3_Send(Com_cjxy,9);// 将传感器数据通过串口2打印输出
- Uart4_Send(Com_cjxy,9);// 将传感器数据通过串口2打印输出
- Uart5_Send(co2buf,9);// 将传感器数据通过串口2打印输出
- USART1_BZ_1=0;
-
- }
- if((xhxs==1))//打印输出传感器参数
- {
- printf("O2 :%d\r\n",MO2); //浓度
- printf("CO2 :%d\r\n",ME2O2); //浓度
- printf("O3 :%d\r\n",MO3); //浓度
- printf("C2H4 :%d\r\n",MC2H4); //浓度
- printf("Humi :%.1f%\r\n",Humidity); //湿度
- printf("temp :%.1f%\r\n",Temperature); //温度
- printf(" \r\n");
- T=Temperature; H=Humidity; //温度 湿度
- xhxs=0;
- }
- }
- }
复制代码
所有资料51hei提供下载:
1.2znlk.7z
(204.02 KB, 下载次数: 53)
|