#include "stm32f10x.h"
#include "delay.h"
#include "oled.h"
#include "sys.h"
#include "DTH117.h"
#include "usart.h"
#include "timer.h"
#include "led.h"
#include "bh1750.h"
u8 temp = 0;//定義全局變量
u8 humi = 0;
u8 t = 0;
u8 light = 0;
void TIM2_Int_Init(u16 arr,u16 psc);//對該函數進行提前聲明,防止**《》**標記行報錯
//void LED_Init();//包含了頭文件這個可以省
int main()
{
SystemInit();//開啟系統時鐘
delay_init();//初始化延時函數
TIM2_Int_Init(4999,7199);//**《》**
// LED_Init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//0正常顯示;1對應的反顯和旋轉顯示。
OLED_ColorTurn(0);
OLED_DisplayTurn(0);
OLED_Init();//oled初始化
// OLED_Clear();//對oled進行一次清屏
/*******************************dht11操作函數*********************************/
Usart1_Init(115200);//開啟串口一
DHT11_Init();//初始化dht11模塊
bh1750_Init();//初始化bh1750
//顯示溫濕度
OLED_ShowChinese(0,16,4,16,1);
OLED_ShowChinese(16,16,3,16,1);
OLED_ShowChinese(32,16,5,16,1);
OLED_ShowChinese(0,32,2,16,1);
OLED_ShowChinese(16,32,3,16,1);
OLED_ShowChinese(32,32,5,16,1);
//顯示冒號u8*是強制類型轉換
OLED_ShowString(49,16,(u8*)":",16,1);
OLED_ShowString(49,32,(u8*)":",16,1);
OLED_Refresh();
while(1){
/*******************函數功能:啟動dht11并進行溫濕度檢測,進行串口打印******************/
// DHT11_Read_Data(&temp,&humi);//DHT11讀取數據
//
// UsartPrintf(USART_DEBUG,"濕度%d 溫度%d",temp,humi);//串口打印函數
// delay_ms(100);//延時0.1秒
/*******************函數功能:啟動BH1750光照強度傳感器********************/
// Light=getValue();
// bh1750_ReadOneTime();
// bh1750_ReadContinuous1();
/*******************函數功能:啟動OLED顯示屏********************/
//這個函數沒用起來,還請大佬門在評論區幫忙解決一下,罵輕點。。。。
////////// OLED_ShowString(35,16,(u8*)"濕度:",16,1);
////////// OLED_ShowString(35,32,(u8*)"溫度:",16,1);
////////// OLED_Refresh();
if(t%10==0) //每100ms讀取一次
{
DHT11_Read_Data(&temp,&humi); //讀取溫濕度
UsartPrintf(USART_DEBUG,"濕度%d 溫度%d",temp,humi); //打印串口數據 ,再加一個光照強度%d light
OLED_ShowNum(57,16,humi,2,16,1); //顯示濕度
OLED_ShowNum(57,32,temp,2,16,1); //顯示溫度
// OLED_ShowNum(57,64,light,2,16,1);
OLED_Refresh(); //更新顯示到OLED
}
delay_ms(50);
t++;
}
////////// OLED_ShowString(0,0,(u8*)"溫度",16,0);
//delay_ms(5000);
}
第一次發見諒,main.c沒發出去
|