• 大小: 549KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: 其他
  • 标签: Tiny6410  DHT11  Linux  

资源简介

基于Tiny6410,在linux上移植的DHT11温湿度测量模块驱动和简单应用程序。采用简单的GPIO实现

资源截图

代码片段和文件信息

#include   
#include   
#include   
#include   
#include   
#include   
#include   
#include   
#include 
#include   
#include   
#include   
#include   
#include  

#include  
#include “s3c6410_gpio.h“  
  
 
#define DEVICE_NAME “dht11“  
#define DQ         8  
#define CFG_IN     0  
#define CFG_OUT    1  

int dht11_major = 0;  
int dht11_minor = 0;    
  
// 定义设备类型    
struct cdev cdev;  
 
static struct class *dht11_class;  
  
/* 函数声明 */  
static int dht11_open(struct inode *inode struct file *filp);  
 
static ssize_t dht11_read(struct file *filp char __user *buf  
                            size_t count loff_t *f_pos);  
  
static int dht11_release(struct inode *inode struct file *file);

unsigned char  dht11_read_byte(void);
  
/******************************************************************************************************  
** 函数名称: dht11_open()  
** 函数功能: 打开设备,初始化dht11  
** 入口参数: inode:设备文件信息; filp: 被打开的文件的信息  
** 出口参数: 成功时返回0失败返回-1  
** 备    注:  
******************************************************************************************************/  
static int dht11_open(struct inode *inode struct file *filp)  
{  
    printk(KERN_ERR “open sht11 success \n“);
    return 0;  
}  


//读取dht11发送的8位数据 
unsigned char  dht11_read_byte(void)  
{      
    int i=0;  
    int num;   
    unsigned char flag=0;  
    unsigned char data=0;  
      
  
    for(num=0;num<8;num++)  
    {                
          i=0;  
          while(!s3c6410_gpio_getpin(DQ))  
          {  
            udelay(10);  
            i++;  
            if(i>10)  
            break;  
           }  
            flag=0x0;  
            udelay(28);              
           if(s3c6410_gpio_getpin(DQ))  
           {  
            flag=0x01;            
           }  
            i=0;  
           while(s3c6410_gpio_getpin(DQ))  
           {  
            udelay(10);  
            i++;  
            if(i>12)  
            break;  
           }  
           data<<=1;  
           data|=flag;  
    }    
    return data;  
}
/******************************************************************************************************  
** 函数名称: dht11_read()  
** 函数功能: 读出dht11  
** 入口参数:     
******************************************************************************************************/  
static ssize_t dht11_read(struct file *filp char __user *buf  
                            size_t count loff_t *f_pos)  
{  
         
     int i=0err;
     unsigned char bufe[6]={0x00x00x00x00x00x0};

     s3c6410_gpio_cfgpin(DQ CFG_OUT);  

      s3c6410_gpio_setpin(DQ 1);  
        udelay(2);  
      s3c6410_gpio_setpin(DQ 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        6648  2016-09-05 16:12  dht11.c
     文件      101051  2016-09-05 16:13  dht11_t.ko
     文件         609  2016-09-05 16:12  dht11_test.c
     文件        8043  2016-09-05 16:13  dht11_test.test
     文件        1478  2016-08-29 10:05  s3c6410_gpio.h
     文件      527170  2012-02-14 19:01  DHT11说明书最新版.pdf

评论

共有 条评论