硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4019|回复: 24
收起左侧

基于V6的DS18B20带CRC校验参考例程

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2018-9-12 13:04:09 | 显示全部楼层 |阅读模式
例程下载: V6-124_DS18B20温度传感器例程.7z (3.04 MB, 下载次数: 666)

带CRC后,防止读取的数值错误却不知道,这样可以滤除错误值。

测效果:
image.png


评分

参与人数 1金币 +20 收起 理由
byccc + 20 赞一个!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2018-9-12 15:06:30 | 显示全部楼层
DS18B20手册.pdf (484.15 KB, 下载次数: 99)

QQ截图20180912150044.png


回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2018-9-13 10:47:41 | 显示全部楼层
感谢分享,准备升级下。
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2018-9-28 00:36:23 | 显示全部楼层
函数再稍微升级下,方便检测,一楼的例程也是没问题的。

20180928003421.jpg
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2020-4-14 13:54:49 | 显示全部楼层
感谢分享
Releasing your creativity
回复

使用道具 举报

74

主题

1202

回帖

1424

积分

至尊会员

积分
1424
发表于 2020-4-14 20:48:56 | 显示全部楼层
谢谢分享,明天到公司下载
回复

使用道具 举报

74

主题

1202

回帖

1424

积分

至尊会员

积分
1424
发表于 2020-4-15 09:16:43 | 显示全部楼层
硬汉哥,你的工程,iar版本有点低啊,iar8可以打开吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2020-4-15 09:27:51 | 显示全部楼层
wdliming 发表于 2020-4-15 09:16
硬汉哥,你的工程,iar版本有点低啊,iar8可以打开吗?

8.3x及其以上版本,直接打开编译即可。
回复

使用道具 举报

74

主题

1202

回帖

1424

积分

至尊会员

积分
1424
发表于 2020-4-15 10:31:05 | 显示全部楼层
eric2013 发表于 2020-4-15 09:27
8.3x及其以上版本,直接打开编译即可。

好的,谢谢!!
回复

使用道具 举报

74

主题

1202

回帖

1424

积分

至尊会员

积分
1424
发表于 2020-4-15 10:32:21 | 显示全部楼层
eric2013 发表于 2020-4-15 09:27
8.3x及其以上版本,直接打开编译即可。

果然可以了。是不是8.3的兼容老的版本啊?我前面看到论坛说,不兼容的,要么硬汉哥直接做了手脚,哈哈
回复

使用道具 举报

74

主题

1202

回帖

1424

积分

至尊会员

积分
1424
发表于 2020-4-15 10:32:23 | 显示全部楼层
eric2013 发表于 2020-4-15 09:27
8.3x及其以上版本,直接打开编译即可。

果然可以了。是不是8.3的兼容老的版本啊?我前面看到论坛说,不兼容的,要么硬汉哥直接做了手脚,哈哈
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2020-4-15 11:20:26 | 显示全部楼层
wdliming 发表于 2020-4-15 10:32
果然可以了。是不是8.3的兼容老的版本啊?我前面看到论坛说,不兼容的,要么硬汉哥直接做了手脚,哈哈

7.x不行。
回复

使用道具 举报

74

主题

1202

回帖

1424

积分

至尊会员

积分
1424
发表于 2020-4-15 11:22:17 | 显示全部楼层

多谢硬汉哥!!
回复

使用道具 举报

32

主题

295

回帖

391

积分

高级会员

积分
391
发表于 2020-4-19 11:21:46 | 显示全部楼层
感谢硬汉分享,中午在家整了一下HAL库的DS18B20程序,定时器用的DWT,因为之后想把这个程序防在rtx上面运行,使用dwt比较方便

bsp_ds18b20.h

753 Bytes, 下载次数: 17

bsp_ds18b20.c

14.12 KB, 下载次数: 29

回复

使用道具 举报

74

主题

1202

回帖

1424

积分

至尊会员

积分
1424
发表于 2020-4-19 12:47:42 | 显示全部楼层
weiyuliang 发表于 2020-4-19 11:21
感谢硬汉分享,中午在家整了一下HAL库的DS18B20程序,定时器用的DWT,因为之后想把这个程序防在rtx上面运行 ...

谢谢分享
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2020-4-20 09:55:48 | 显示全部楼层
weiyuliang 发表于 2020-4-19 11:21
感谢硬汉分享,中午在家整了一下HAL库的DS18B20程序,定时器用的DWT,因为之后想把这个程序防在rtx上面运行 ...

谢谢分享。
回复

使用道具 举报

32

主题

295

回帖

391

积分

高级会员

积分
391
发表于 2020-4-20 14:50:05 | 显示全部楼层

硬汉太客气了,都是参考你的程序修改出来的
回复

使用道具 举报

74

主题

1202

回帖

1424

积分

至尊会员

积分
1424
发表于 2020-5-6 10:41:16
请问硬汉哥,ds18b20采集到的温度准确吗?网片使用ds18b20来采集温度,热电偶采集温差
我们把ds18b20基本上就贴着pcb板子的,会不会板子的温度会影响ds18b20温度,导致实际采集到的的不是环境温度。

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2020-5-20 20:42:07 | 显示全部楼层
我使用了这个例程,放在恒温箱里面实验,0度以下温度数值不准,且不是负数。CRC也没有出错。请教下可能是什么原因?18B20数据脚通过1个8.2K电阻上拉,试过5V和3.3V供电,问题一样
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2020-5-21 01:40:22 | 显示全部楼层
youngyyzz 发表于 2020-5-20 20:42
我使用了这个例程,放在恒温箱里面实验,0度以下温度数值不准,且不是负数。CRC也没有出错。请教下可能是什 ...

是否是原装正品,这点很关键。
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2020-5-26 16:15:16 | 显示全部楼层

硬汉哥,你好,请教两个问题,
看手册了解到温度转换时间为93.75ms、187.5ms、375ms、750ms。 我仿真测试int16_t DS18B20_ReadTempRegCRC(void)这个函数运行时间是9MS左右,为什么你这代码9MS就能出结果?
这里面有关全局中断,那么会不会在关全局中断期间收不到外面串口发来的数据?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2020-5-26 16:59:34 | 显示全部楼层
youngyyzz 发表于 2020-5-26 16:15
硬汉哥,你好,请教两个问题,
看手册了解到温度转换时间为93.75ms、187.5ms、375ms、750ms。 我仿真测 ...

你说的这个是最大转换时间吧,时间上就是比较短的时间就可以正确读取。
回复

使用道具 举报

1

主题

35

回帖

43

积分

新手上路

积分
43
发表于 2020-5-27 18:29:11 | 显示全部楼层
eric2013 发表于 2020-5-26 16:59
你说的这个是最大转换时间吧,时间上就是比较短的时间就可以正确读取。

DS18B20温度转换是需要一定的延时时间的,如果直接在发完转换指令后就读的话,读出来的温度是不准确的,这个可以在设备上电后第一次读温度时可以看出来,后来定时读出来的温度,很可能是上一次温度转换命令的结果,而不是当下转换命令的结果。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
 楼主| 发表于 2020-5-27 18:32:34 | 显示全部楼层
水晶之泪0517 发表于 2020-5-27 18:29
DS18B20温度转换是需要一定的延时时间的,如果直接在发完转换指令后就读的话,读出来的温度是不准确的, ...

所以说开CRC就行。我这么用了好多年了,是真的好用。
回复

使用道具 举报

1

主题

35

回帖

43

积分

新手上路

积分
43
发表于 2020-5-27 18:52:30 | 显示全部楼层
eric2013 发表于 2020-5-27 18:32
所以说开CRC就行。我这么用了好多年了,是真的好用。

这样直接不加延时读出的结果,感觉像是上一次的转换结果,不能说不准确,是温度实时性的问题
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2022-4-11 00:03:13 | 显示全部楼层
感謝分享, 下載學習使用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 05:39 , Processed in 0.249301 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表