linux ds18b20 温度传感器驱动

linux ds18b20温度传感器驱动


在内核配置中打开  Dallas's 1-wire suppor t 中的 
                                            1-wire Bus Masters 
                                                             GPIO 1-wire busmaster 
                                             1-wire Slaves
                                                             Thermal family implementation 

在平台mach-xxx.c中注册平台驱动

/*
 * One-wire (W1 bus) support
 */
static struct w1_gpio_platform_data ds18b20_platform_data = {
	.pin			= S5PV210_GPH2(7), //< EINT23
	.is_open_drain	= 1,
};

static struct platform_device ds18b20_device = {
	.name	= "w1-gpio",
	.id		= -1,
	.dev	= {
		.platform_data = &ds18b20_platform_data
	}
};

static void add_w1_gpio(void)
{
	s3c_gpio_cfgpin(S5PV210_GPH2(7), S3C_GPIO_OUTPUT);
	s3c_gpio_setpull(S5PV210_GPH2(7), S3C_GPIO_PULL_NONE);
	s5p_gpio_set_drvstr(S5PV210_GPH2(7), S5P_GPIO_DRVSTR_LV4);
	gpio_set_value(S5PV210_GPH2(7), 1);

	platform_device_register(&ds18b20_device);
}

并在static void __init smdkv210_machine_init(void) 函数中添加一下代码

add_w1_gpio();

编译内核并烧写运行
在/sys/bus/w1/devices目录下可以看到28-开头的ds18b20的设备节点目录, 用cat命令可以查看该目录下的w1_slave文件得到温度数据


 

 
 

你可能感兴趣的:(android,linux,ARM)