| 
 | 
1、        在arch/arm/mach-s3c2440/mach-smdk2440.c文件中构建DS18B20设备 
添加头文件 
#include <linux/w1-gpio.h> 
#include <plat/gpio-cfg.h> 
构建DS18B20设备的平台数据结构: 
/* DS18B20 */ 
static void w1_enable_external_pullup(int enable) 
{ 
        if (enable) 
                s3c_gpio_setpull(S3C2410_GPG(14), S3C_GPIO_PULL_UP); 
        else 
                s3c_gpio_setpull(S3C2410_GPG(14), S3C_GPIO_PULL_NONE); 
} 
static struct w1_gpio_platform_data ds18b20_w1_gpio = { 
        .pin = S3C2410_GPG(14), 
        .is_open_drain = 0, 
        .enable_external_pullup = w1_enable_external_pullup, 
}; 
 
static struct platform_device tq2440_ds18b20_device = { 
        .name = "w1-gpio", 
        .id = -1, 
        .dev = { 
                .platform_data = &ds18b20_w1_gpio, 
        }, 
}; 
在smdk2440_devices[]中加入 
&tq2440_ds18b20_device 
2、        配置内核支持w1-gpio和ds18b20驱动 
Device Drivers  ---> 
                {*} Dallas's 1-wire support  ---> 
                        1-wire Bus Masters  ---> 
                                <*> GPIO 1-wire busmaster 
1-        wire Slaves  ---> 
<*> Thermal family implementation 
3、        重新编译 
[root@tq2440 /]# ls sys/devices/w1\ bus\ master/ 
28-0000032121a3            w1_master_name 
bus                        w1_master_pointer 
driver                     w1_master_pullup 
power                      w1_master_remove 
subsystem                  w1_master_search 
uevent                     w1_master_slave_count 
w1_master_add              w1_master_slaves 
w1_master_attempts         w1_master_timeout 
w1_master_max_slave_count 
这个目录下有一个以“28-”开头的目录,这个就是你的DS18B20设备的目录,28代表你使用的温度传感器是DS18B20,后面接的一串数字和字母是它的ID号(用来识别不同设备,也是独一无二的) 
进入这个目录,里面的w1_slave文件就是它的设备文件: 
[root@tq2440 28-0000032121a3]# ls 
bus        id         power      uevent 
driver     name       subsystem  w1_slave 
获取温度值: 
查看w1_slave设备文件中的内容,便可得到温度值,执行命令cat w1_slave 
[root@tq2440 28-0000032121a3]# cat w1_slave  
fe 00 4b 46 7f ff 02 10 8a : crc=8a YES 
fe 00 4b 46 7f ff 02 10 8a t=15875 
“t=”后面的数字就是温度值,要在千位的后面加上小数点,此时温度为:15.875摄氏度 
十八、 
 |   
 
 
 
 |