首页 > 其他分享 >DS18B20模块温转代码

DS18B20模块温转代码

时间:2022-11-04 16:23:27浏览次数:56  
标签:DL DH ds18b20 DS18B20 unsigned flags 温转 模块 byte

static ssize_t ds18b20_read(struct file* file,char __user* buf, size_t size,loff_t* offset){
  unsigned long flags;
  unsigned char DL= 0,DH = 0;
  unsigned char de1,de2,del;
  unsigned int integer;
  local_irq_save(flags);
  if(ds18b20_reset()){
    local_irq_restore(flags);
    return -ENODEV;
  }
  ds18b20_write_byte(0xcc);
  ds18b20_write_byte(0x44);//启动温转
  gpiod_direction_output(ds18b20_pin,1);
  local_irq_restore(flags); 
  set_current_state(TASK_INTERRUPTIBLE);//使用schedule_timeout先设置状态
  schedule_timeout(HZ);//延时1s,温转需要时间
  local_irq_save(flags);//再次关中断
  ds18b20_write_byte(0xcc);
  ds18b20_write_byte(0xbe);//读取寄存器
  // 读取的字节顺序?
  DL = ds18b20_read_byte();//低八位
  DH = ds18b20_read_byte();//高八位
  if(DH > 0x7f){
    DL = ~DL;
  //待完善 } else{ //分辨率:0.0625 integer = DL/16 + DH*16; de1 = (DL&0x0f)*10/16; de2 = (DL&0x0f)*100/16; del = de1*10 + de2; }

 

标签:DL,DH,ds18b20,DS18B20,unsigned,flags,温转,模块,byte
From: https://www.cnblogs.com/xuan01/p/16858217.html

相关文章

  • 在PetaLinux工程中导出所有关键模块代码
    PetaLinux工程会自动下载代码并编译。很多时候,工程师需要修改代码,加入调试信息。使用下列脚本,可以一次性导出所有关键模块的代码。脚本中,为了保持兼容性,导出了MPSoC和Vers......
  • Python内置模块FTPLIb的 STORLINES方法运行出错解决过程
    FTPLIbSTORLINES方法出错解决过程错误现象importftplibimportoptparseimportsysclassFTPWebpageDetect:def__init__(self)->None:self.target......
  • 振弦采集模块传感器接口(智能振弦传感器)
    振弦采集模块传感器接口(智能振弦传感器)传感器线圈接口传感器线圈接口由SEN+和SEN-管脚组成,分别连接到振弦传感器线圈两端。通常情况下,传感器线圈不区分正负极,直接连接......
  • 8路编码器脉冲计数器或16路DI高速计数器Modbus RTU模块YL69
    特点:●编码器解码转换成标准ModbusRTU协议●可用作编码器计数器或者转速测量●支持8个编码器同时计数,可识别正反转●也可以设置作为16路独立DI高速计数器● 编码器计......
  • python之sys模块
    python之sys模块详解之前用过sys模块的一种用法,今天总结一下。sys.argv功能:在外部向程序内部传递参数eg:#!/usr/bin/envpythonimportsysprint(sys.argv[0])print(sys.arg......
  • golang 离线使用模块
    修改go.modmoduletcpgo1.17require( gitlab.xxx.test/dto/appv0.0.0-20220929075345-361eddc7a846 gitlab.xxx.test/dto/gatewayv0.0.0-20221012065303-c57......
  • springboot多模块配置nginx
    1.后端有8088、8089两个端口不同的模块2.在nginx里配置地址。监听端口:9001,转发端口:8088、8099#usernobody;worker_processes1;#error_loglogs/error.log;#er......
  • 如何写一个给自己的框架写一个优雅的Java Config模块
    发博词工作时间长一点的工程师,平时的“工作生活”中肯定免不了写一些大大小小的框架和中间件。最近在看SpringSecurity的源码,由于这个框架要解决的问题比较多、复杂且零碎,......
  • Python json模块
    一、JSON介绍JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写。二、常用方法方法描述json.loads()将JSON字符串转化为Python......
  • 实用教程详解:模型部署,用DNN模块部署YOLOv5目标检测(附源代码)
    公众号ID|ComputerVisionGzq学习群|扫码在主页获取加入方式计算机视觉研究院专栏作者:Edison_G今天给大家分享一些实践的干货,主要是怎么将训练好的网络模型部署落地。有兴趣的......