#include "led.h" #include "delay.h" #include "sys.h" #include "stm32f10x.h" #include "stdio.h" #include "key.h" #include "usart.h" #include "drive_dht11.h" #include "bh1750.h" #include "adc.h" u8 humi=0;//湿度值 u8 temp=0;//温度值 u8 buffer[10]={0}; u16 GzVal=0; //实际光照值 char ShowBuf[16]={0}; //void TIMER3_Int_Init(u16 arr,u16 psc) //{ // TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStrue; // NVIC_InitTypeDef NVIC_InitStructure; // TIM_TimeBaseInitStrue.TIM_Period=arr; // TIM_TimeBaseInitStrue.TIM_Prescaler=psc; // TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up; // TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CounterMode_Up; // RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); // TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStrue); // // TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//使能TIM3更新中断 // //中断优先级NVIC设置 // NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断 // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级0级 // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级3级 // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能 // NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器 // // TIM_Cmd(TIM3, ENABLE); //使能TIMx //} u16 GetTimer=0;//采集时间计数器 //void TIM3_IRQHandler(void)//中断服务程序 //{ // if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET)//SET为1 // { // GetTimer++;//采集计数器 // TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除TIM3的更新中断标志 // // // } //} u8 GetFlag=0; uint8_t sendBuff[16]={0}; int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级 delay_init(); //延时函数初始化 LED_Init(); //初始化与连接的硬件接口 uart_init(115200); delay_ms(1000); ADC1_Init(); while(1) { if(dht11_read_data(buffer) == 0)//读取温湿度 { humi = buffer[0] + buffer[1] / 10;//取湿度值 temp = buffer[2] + buffer[3] / 10;//取温度值 } delay_ms(1000); GzVal = Get_Adc(0); sendBuff[0]=0xaa;//帧头 sendBuff[1]=temp; sendBuff[2]=humi; sendBuff[3]=GzVal>>8; sendBuff[4]=GzVal; sendBuff[6]=0xfa;//帧尾 UsartSendData(sendBuff,6);//发送到zigbee模块 //printf("Send_X%dH%dD%dZ\r\n",temp,humi,GzVal);//发送到zigbee模块 } }