91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

自己編寫的基于linux在mini2440開發板上運行的溫濕度傳感器驅動代碼,可以正常使用碼,包括已經編譯好的文件和測試程序

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?

#define?DEVICE_NAME?“dht11“

static?char?DHT11_read_byte?(?void?)
{
char?DHT11_byte?;
unsigned?char?i?;
unsigned?char?temp?;

DHT11_byte?=?0?;
for?(?i?=?0?;?i? {
temp?=?0?;
while?(?!?(s3c2410_gpio_getpin?(?S3C2410_GPF(0)?)?)?)
{
temp?++?;
if?(?temp?>?12?)
return?1?;
udelay?(?5?)?;
}
temp?=?0?;
while?(?s3c2410_gpio_getpin?(?S3C2410_GPF(0)?)?)
{
temp?++?;
if?(?temp?>?20?)
return?1?;
udelay?(?5?)?;
}
if?(?temp?>?6?)
{
DHT11_byte?<<=?1?;
DHT11_byte?|=?1?;
}?
else
{
DHT11_byte?<<=?1?;
DHT11_byte?|=?0?;
}
}
return?DHT11_byte?;
}

static?ssize_t?DHT11_read?(?struct?file*?filp?char?__user*?buf?size_t?count?loff_t*?f_pos?)
{
unsigned?char?DataTemp;
unsigned?char?i;
unsigned?char?err;
char?tempBuf[5];
// loff_t?pos?=?*f_pos?;

err?=?0?;

s3c2410_gpio_cfgpin?(?S3C2410_GPF(0)??S3C2410_GPIO_OUTPUT?);
s3c2410_gpio_setpin?(?S3C2410_GPF(0)??0?);
msleep?(?18?);
// mdelay?(?18?);
s3c2410_gpio_setpin?(?S3C2410_GPF(0)??1?);
udelay?(?40?);
s3c2410_gpio_cfgpin?(?S3C2410_GPF(0)??S3C2410_GPIO_INPUT?);
if?(?!err?)
{
DataTemp?=?10?;
while?(?!(?s3c2410_gpio_getpin?(?S3C2410_GPF(0)?)?)?&&?DataTemp?)
{
DataTemp?--;
udelay?(?10?);
}
if?(?!DataTemp?)
{
err?=?1;
count?=?-EFAULT;
}
}
if?(?!err?)
{
DataTemp?=?10?;
while?(?(?s3c2410_gpio_getpin?(?S3C2410_GPF(0)?)?)?&&?DataTemp?)
{
DataTemp?--;
udelay?(?10?);
}
if?(?!DataTemp?)
{
err?=?1;
count?=?-EFAULT;
}
}
if?(?!err?)
{
for?(?i?=?0;?i? {
tempBuf[i]?=?DHT11_read_byte?()?;
}
DataTemp?=?0?;
for?(?i?=?0;?i? {
DataTemp?+=?tempBuf[i]?;
}
if?(?DataTemp?!=?tempBuf[4]?)
{
count?=?-EFAULT;
}
// if?(?count?>?(?5?-?pos?)?)
// {
// count?=?5?-?pos?;
// }
if?(?count?>?5?)
{
count?=?5?;
}

//? pos?+=?count;
// if?(?copy_to_user?(?buf??tempBuf?+?*f_pos??count?)?)
if?(?copy_to_user?(?buf??tempBuf??count?)?)
{
count?=?-EFAULT?;
}
// *f_pos?=?pos;
}
s3c2410_gpio_cfgpin?(?S3C2410_GPF(0)??S3C2410_GPIO_OUTPUT?);
s3c2410_gpio_setpin?(?S3C2410_GPF(0)??1?);
return?count;
}


static?struct?file_operations?dev_fops?=?{
.owner?=?THIS_MODULE
.read?=?DHT11_read
};
static?struct?miscdevice?misc?=?{
.minor?=?MISC_DYNAMIC_MINOR
.name?=?DEVICE_NAME
.fops?=?&dev_fops
};

static?int?__init?DHT11_init_module?(?void?

評論

共有 條評論