你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【NUCLEO-F103RB开发】CubeMX实现STM32F1温度采集(DS18B20)

[复制链接]
yinyue01 发布时间:2015-11-19 09:40
最近用NUCLEO-F103RB实现了DS18B20温度采集,分享一下实现过程和程序。
1.在CubeMX中新建项目,选择Board selector->NUCLEO-F103RB
1.jpg
2.配置串口,用于输出结果
2.jpg
3.时钟配置用默认,系统时钟为64MHz
3.jpg
4.生成KEIL Project
4.jpg
5.在main.c中加入如下代码,读取DS18B20温度数据
5.jpg
6.实现printf()重定向到串口
6.jpg
7.DS18B20程序实现
DS18B20共有6种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。所有这些信号,除了应答脉冲以外,都由主机发出同步信号。并且发送所有的命令和数据都是字节的低位在前。
这几个信号的时序如下:
1)复位脉冲和应答脉冲
单总线上的所有通信都是以初始化序列开始。主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。接着主机释放总线,4.7K的上拉电阻将单总线拉高,延时15~60us,并进入接收模式(Rx)。接着DS18B20拉低总线60~240us,以产生低电平应答脉冲,若为低电平,再延时480us。
2)写时序
写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,两种写时序均起始于主机拉低总线。写1时序:主机输出低电平,延时2us,然后释放总线,延时60us。写0时序:主机输出低电平,延时60us,然后释放总线,延时2us。
3)读时序
单总线器件仅在主机发出读时序时,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。典型的读时序过程为:主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取单总线当前的电平,然后延时50us。
DS18B20的温度读取过程一般为:复位->发SKIPROM命令(0XCC)->发开始转换命令(0X44)->延时->复位->发送SKIPROM命令(0XCC)->发读存储器命令(0XBE)->连续读出两个字节数据(即温度)->结束。
将DS18B20连接到STM32F103的PA5口,根据上述时序编写DS18B20的驱动程序。

7.jpg
其中的us延时函数用while()循环实现:
void delay_us(uint32_t value)
{
uint32_t i;
i = value * 15;
while(i--);
}
8.运行结果如下:

9.jpg
8.jpg
f1_ds18b20.zip (3.15 MB, 下载次数: 482)

评分

参与人数 1 ST金币 +10 收起 理由
沐紫 + 10

查看全部评分

收藏 2 评论5 发布时间:2015-11-19 09:40

举报

5个回答
沐紫 回答时间:2015-11-19 09:50:10
103也有nucleo板了
yinyue01 回答时间:2015-11-19 09:53:53
沐紫 发表于 2015-11-19 09:50
103也有nucleo板了

很早就有了,我6月拿到的
dsjsjf 回答时间:2015-11-19 22:07:46
这么老的片子也还在出nucleo板?
yangzhi3963 回答时间:2018-8-23 10:42:27
谢谢分享,学习中。
yangzhi3963 回答时间:2018-9-5 13:34:01
下载学习一下,谢谢分享。

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版