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)
2019-5-14 04:18 上傳
點擊文件名下載附件
|