main.c 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "stm32f10x.h"
  5. #include "stdio.h"
  6. #include "key.h"
  7. #include "usart.h"
  8. #include "drive_dht11.h"
  9. #include "bh1750.h"
  10. #include "adc.h"
  11. u8 humi=0;//湿度值
  12. u8 temp=0;//温度值
  13. u8 buffer[10]={0};
  14. u16 GzVal=0; //实际光照值
  15. char ShowBuf[16]={0};
  16. //void TIMER3_Int_Init(u16 arr,u16 psc)
  17. //{
  18. // TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStrue;
  19. // NVIC_InitTypeDef NVIC_InitStructure;
  20. // TIM_TimeBaseInitStrue.TIM_Period=arr;
  21. // TIM_TimeBaseInitStrue.TIM_Prescaler=psc;
  22. // TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up;
  23. // TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CounterMode_Up;
  24. // RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
  25. // TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStrue);
  26. //
  27. // TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//使能TIM3更新中断
  28. // //中断优先级NVIC设置
  29. // NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断
  30. // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级0级
  31. // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级3级
  32. // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
  33. // NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器
  34. //
  35. // TIM_Cmd(TIM3, ENABLE); //使能TIMx
  36. //}
  37. u16 GetTimer=0;//采集时间计数器
  38. //void TIM3_IRQHandler(void)//中断服务程序
  39. //{
  40. // if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET)//SET为1
  41. // {
  42. // GetTimer++;//采集计数器
  43. // TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除TIM3的更新中断标志
  44. //
  45. //
  46. // }
  47. //}
  48. u8 GetFlag=0;
  49. uint8_t sendBuff[16]={0};
  50. int main(void)
  51. {
  52. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  53. delay_init(); //延时函数初始化
  54. LED_Init(); //初始化与连接的硬件接口
  55. uart_init(115200);
  56. delay_ms(1000);
  57. ADC1_Init();
  58. while(1)
  59. {
  60. if(dht11_read_data(buffer) == 0)//读取温湿度
  61. {
  62. humi = buffer[0] + buffer[1] / 10;//取湿度值
  63. temp = buffer[2] + buffer[3] / 10;//取温度值
  64. }
  65. delay_ms(1000);
  66. GzVal = Get_Adc(0);
  67. sendBuff[0]=0xaa;//帧头
  68. sendBuff[1]=temp;
  69. sendBuff[2]=humi;
  70. sendBuff[3]=GzVal>>8;
  71. sendBuff[4]=GzVal;
  72. sendBuff[6]=0xfa;//帧尾
  73. UsartSendData(sendBuff,6);//发送到zigbee模块
  74. //printf("Send_X%dH%dD%dZ\r\n",temp,humi,GzVal);//发送到zigbee模块
  75. }
  76. }