芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

芯片复制ESK32-360开发板的传感器测量

本帖最后由 jinglixixi 于 2020-8-29 09:01 编辑

芯片复制DHT22是一种单总线的数字式温湿度传感器,它共有3个引脚,只需占用一个GPIO口接口工作。
通过这条总线既靠它发出指令,也靠它接收数据。此外,为了进行信号的识别,还需相应的时序配合。有了前面的I2C接口的基础,就可以探索一下DHT22的驱动及温湿度检测。

1. DHT22温湿度检测
DHT22与MCU的连接关系为:
DAT——PC12
其余两个引脚则接3.3V工作电源

芯片复制定义GPIO口读取电位及输出高低电平的语句为:
#define DHT22_D0_H      HT_GPIOC->SRR = GPIO_PIN_12
#define DHT22_D0_L       HT_GPIOC->RR = GPIO_PIN_12
#define DHT22_D0_R      GPIO_ReadInBit(HT_GPIOC, GPIO_PIN_12)

设置GPIO为输入、输出的函数为:
  1. void DHT22_IO_IN(void)
  2. {
  3.             AFIO_GPxConfig(GPIO_PC, GPIO_PIN_12, 0);
  4.             GPIO_PullResistorConfig(HT_GPIOC, GPIO_PIN_12, GPIO_PR_DOWN);
  5.             GPIO_DirectionConfig(HT_GPIOC, GPIO_PIN_12, GPIO_DIR_IN);
  6.             GPIO_InputConfig(HT_GPIOC, GPIO_PIN_12, ENABLE);
  7. }

  8. void DHT22_IO_OUT(void)
  9. {
  10.            GPIO_PullResistorConfig(HT_GPIOC, GPIO_PIN_12, GPIO_PR_DISABLE);
  11.            GPIO_DriveConfig(HT_GPIOC, GPIO_PIN_12, GPIO_DV_8MA);
  12.            GPIO_DirectionConfig(HT_GPIOC, GPIO_PIN_12, GPIO_DIR_OUT);
  13.            GPIO_InputConfig(HT_GPIOC, GPIO_PIN_12, ENABLE);
  14. }
复制代码

DHT22读取数据的函数为:
  1. u8 DHT22_Read_Data(u16 *temp,u16 *humi)
  2. {      
  3.         u8 buf[5];
  4.          u8 i;
  5.          DHT22_Rst();
  6.          if(DHT22_Check()==0)
  7.          {
  8.                    for(i=0;i<5;i++)
  9.                    {
  10.                             buf[i]=DHT22_Read_Byte();
  11.                    }
  12.                    if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
  13.                    {
  14.                             *humi=(buf[0]*256+buf[1]);
  15.                             *temp=(buf[2]*256+buf[3]);
  16.                    }
  17.          } else return 1;
  18.          return 0;     
  19. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信