数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2150|回复: 10

[STM] 分享 串口模拟单总线1-wire时序读取18B20数据

[复制链接]
发表于 2022-6-26 09:10:28 | 显示全部楼层 |阅读模式
老规矩先上链接
链接:https://pan.baidu.com/s/1vExYHxNHbYgQnrExxoYyQg
提取码:0000

用串口模拟单总线时序这件事很多人研究过,美信官方也给过技术文档,在我的压缩包里也有,不多说了。
程序结构就是在定时中断里读取18B20数据并启动下一次转换,之所以用这样的顺序是因为启动转换后有一个转换时间需要等待,先读取再转换就一路执行下去不耽误时间。
温度原始数据通过串口DMA自动接收并产生DMA中断,中断里设置标志位给主程序用。
主程序收到标志位后对原始数据进行处理,包括正负值判断、处理小数位、送串口助手显示。
在这个程序里连接18B20的串口1使用半双工模式,这样可以省出一个RX脚当普通IO或者分配给别的外设用。配置上虽然是半双工,但是可以一直接收数据的,在时间上不存在收——发——收——发这样的交替,就是说可以直接进行回环测试不需要短接外部两个IO了。
程序里用了两个串口,串口1连接18B20,差串口2对外输出温度数据。串口1配置成开漏、上拉,不需要外部上拉电阻连接18B20数据脚。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +50 收起 理由
家睦 + 50

查看全部打赏

 楼主| 发表于 2022-6-26 09:17:40 | 显示全部楼层
红色板子上的东西都是白嫖的,除了焊锡、红外接收头与18B20板子是立创开源项目上面别人现成的,但是也被坑了一下,不知道是作者故意还是无意的。那一排调试、串口插针那里把串口1与串口2的丝印弄混淆了,我写好的程序一点反应没有才发现这个问题。
板子在嘉立创免费打的,板子上的那些芯片全是在云汉芯城白嫖的,618搞活动送了100.1-100的优惠券,我自己的号+朋友的号一共送了5张券,STM32G031撸了几十颗。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-27 10:51:36 | 显示全部楼层
mmxx2015 发表于 2022-6-26 16:41
网盘造福无币的,赞一个。

扣那么多M币,我自己下起来也心疼。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-23 15:01:02 | 显示全部楼层
xiaoyao_mdj 发表于 2022-8-14 11:54
温度处理显示部分可以优化一下,读取出来的Temp值不用判断正负值,只要Temp变量的数据类型为有符号的short类 ...

谢谢,这个方法更好!
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-16 12:21 , Processed in 0.093600 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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