ds18b20linux开发板,基于ARM9+Linux的DS18B20驱动程序设计

(4)温度读写过程本文引用地址:http://www.eepw.com.cn/article/236202.htm

①循环判断DS18B20直到复位,延时120ms;

②写入CCH命令,跳过读序列号过程;

③写入44H命令,开始温度转换,延时5 ms;

④循环判断DS18B20直到复位,延时200 ms;

⑤写入CCH命令,跳过读序列号过程;

⑥写入BEH命令,读取寄存器;

⑦读温度整数部分;

⑧读温度小数部分。

(5)驱动程序编写

选定S3C2440一个GPIO引脚作为连接DS18B20的数据线,经过查电路图和S3C2440的芯片手册,选择GPF3为连接引脚;

主要对GPF的控制寄存器GPFCON和数据寄存器GPFDAT进行操作,GPF3主要对应GPFCON第6位和第7位,以及GPFDAT的第3位进行操作;对GPFCON[7:6]设00为输人,设01为输出;GPFDAT[3]设为输入时,相应的位即为引脚的状态,设为输出则可以对引脚进行置1和置0操作;

结合S3C2440的寄存器GPFCON和GPFDAT,以及DS18B20时序,可以利用C语言编写Linux下驱动程序,本驱动程序采用实现read接口函数的字符设备驱动。

3 部分代码

1e051ddad8bc9ce9738b5cb44dfe9450.png

b12417493cdc1ffc265fcba88d0e3733.png

9f90c79a26219de2765a15abefb4ece6.png

最后将data通过read接口函数发送到用户层——copy_to_user(buf,data,2),即将8位整数和8位小数部分送到用户层,完成一次数据读取过程。

4 系统运行与测试

加载驱动后,通过用户层调用驱动程序,图4为通过串口调试测试结果。

结语

完成了基于ARM9和Linux2.6.30的DS18B20驱动程序编写,实现了温度数据的采集以及传输。以ARM9为平台,基于Linux2.6.30开发DS18B20的驱动程序,以模块的形式加载到内核,最后通过应用层调用驱动,获得温度数据。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值