使用树莓派GPIO17和GPIO18连接DS18B20温度传感器(关于DS18B20的时序设置)

本文介绍了如何利用树莓派的GPIO17和GPIO18口,通过配置时序读取DS18B20温度传感器的数据。详细解析了DS18B20的复位、应答、写操作模式,以及ROM操作的各种功能,包括温度转换和数据读取的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、树莓派自带W1-GPIO读取

在树莓派中有一种自带的查看DS18B20温度信息,已经写好DS18B20时序,对外设设备进行读取信息然后保存的值在/sys/bus/w1/devices/28-xxxxxxxxxxx/w1_slave文件中,将DS18B20的DQ数据线直接连接在树莓派的GPIO4上就可以使用cat命令进行查看温度值。连接方式如图1,读取温度如图2。读取到温度为 t / 1000,图2的温度为23.187。

图1.使用w1-gpio进行温度读取

图2.使用cat读取温度信息

使用C语言打开w1_slave文件进行读取转换就行,代码如下

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
#include <stdio.h>

#define  BUFSIZE  128

char* addr = "/sys/bus/w1/devices/28-02161682f4ee/w1_slave";

int main(void)
{
	float temp;
	int i, j;
    int fd;
	int ret;

	char buf[BUFSIZE];
	char tempBuf[5];
	while (1){
	fd = open(addr, O_RDONLY);

	if(-1 == fd){
		perror("open device file error");
		return 1;
	}

	while(1){
		ret = read(fd, buf, BUFSIZE);
		if
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值