加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 1.DHT11和DS18B20区别
    • 2.DHT11与STM32怎么连接
    • 3.DS18B20与STM32怎么连接
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

DHT11和DS18B20区别 DHT11与STM32怎么连接

2023/03/07
1.3万
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1.DHT11和DS18B20区别

DHT11DS18B20都是温湿度传感器,但二者有以下不同:

  • DHT11采用单总线通信协议,DS18B20采用1-Wire总线通信协议。
  • DHT11的温度测量范围为0~50℃,精度为±2℃。DS18B20的温度测量范围为-55℃~+125℃,精度为±0.5℃。
  • DHT11同时可以测量温度和湿度,而DS18B20只能测量温度。

2.DHT11与STM32怎么连接

DHT11模块接口包含3个引脚,分别为VCC、GND和data,其中data是数据引脚,需要连接到STM32的输入引脚。

示例代码如下:

#include "dht11.h"#define DHT11_PORT GPIOA#define DHT11_PIN GPIO_Pin_4DHT11_DATA_TypeDef DHT11_Data;void main(void) {  // STM32初始化设置  // ...    while (1) {    DHT11_Read_Data(&DHT11_Data, DHT11_PORT, DHT11_PIN);    printf("温度:%d℃,湿度:%d%%", DHT11_Data.Temperature, DHT11_Data.Humidity);    delay_ms(2000); // 等待2秒后再次读取数据  }}

3.DS18B20与STM32怎么连接

DS18B20模块接口包含3个引脚,分别为VCC、GND和data,其中data是数据引脚,需要连接到STM32的输入引脚。建议添加4.7K上拉电阻

示例代码如下:

#include "ds18b20.h"#define DS18B20_PORT GPIOA#define DS18B20_PIN GPIO_Pin_5int main(void) {  float temperature;  while (1) {    ds18b20_port_init(DS18B20_PORT, DS18B20_PIN);    ds18b20_reset();    ds18b20_write_byte(0xcc);    ds18b20_write_byte(0x44);    delay_us(750000);    ds18b20_reset();    ds18b20_write_byte(0xcc);    ds18b20_write_byte(0xbe);    temperature = ds18b20_read_temperature();    printf("温度:%.1f℃", temperature);    delay_ms(2000); // 等待2秒后再次读取数据    }}

相关推荐

电子产业图谱