打印
[应用相关]

STM32&DS18b20程序 已调试通过

[复制链接]
3693|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhouhuanの|  楼主 | 2017-5-15 22:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/****************************************Copyright (c)****************************************************
**                                       
**                                 
**
**--------------File Info---------------------------------------------------------------------------------
** File name:                        
** Last modified Date:         
** Last Version:                  
** Descriptions:                                                        
**--------------------------------------------------------------------------------------------------------
** Created by:                        FiYu
** Created date:                2015-12-12
** Version:                            1.0
** Descriptions:                DS18B20温度传感器实验                                
**--------------------------------------------------------------------------------------------------------
** Modified by:                        FiYu
** Modified date:               
** Version:                                
** Descriptions:               
** Rechecked by:                        
**********************************************************************************************************/
/****-----请阅读ReadMe.txt进行实验-----***********/

#include "stm32f10x.h"
#include "delay.h"
#include "ds18b20.h"
#include "usart.h"

/**************************************************************************************
* 描  述 : GPIO/USART1初始化配置
* 入  参 : 无
* 返回值 : 无
**************************************************************************************/
void GPIO_Configuration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        
        /* Enable the GPIO_LED Clock */
        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO , ENABLE);                                                  
               
  GPIO_DeInit(GPIOB);         //将外设GPIOA寄存器重设为缺省值
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽输出
        GPIO_Init(GPIOB, &GPIO_InitStructure);
        
        GPIO_DeInit(GPIOA);         //将外设GPIOA寄存器重设为缺省值
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    //推挽输出
        GPIO_Init(GPIOA, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;    //浮空输入
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        
        GPIO_SetBits(GPIOB , GPIO_Pin_9);   //初始状态,熄灭指示灯LED1
}

/**************************************************************************************
* 描  述 : MAIN函数
* 入  参 : 无
* 返回值 : 无
**************************************************************************************/
int main(void)
{
        SystemInit();                        //设置系统时钟72MHZ
        GPIO_Configuration();
        USART1_Init();    //初始化配置TIM
        GPIO_ResetBits(GPIOB , GPIO_Pin_9);
        delay_ms(500);        
        
        while( DS18B20_Init())        
        {
                printf("\r\n no ds18b20 exit \r\n");
                GPIO_SetBits(GPIOB , GPIO_Pin_9);
        }        
        printf("\r\n ds18b20 exit \r\n");
        GPIO_SetBits(GPIOB , GPIO_Pin_9);
        
        for(;;)
        {        
                printf("\r\n temperature %.1f\r\n",DS18B20_Get_Temp());                                 
                delay_ms(1500);                     // 1.5s 读取一次温度值
        }
        
}

/*********************************END FILE********************************************/
沙发
handleMessage| | 2017-5-15 22:36 | 只看该作者
可以和51驱动18B20的代码对比,你明白更多。

使用特权

评论回复
板凳
bbapple| | 2017-5-15 22:42 | 只看该作者
n=DS18B20_Get_Temp();  我这么写为什么n为0

使用特权

评论回复
地板
wanglaojii| | 2017-5-15 22:43 | 只看该作者
请问,双路温度测量可以用么

使用特权

评论回复
评论
icecut 2017-5-16 12:12 回复TA
欢迎砸场子 
5
laozhongyi| | 2017-5-15 22:48 | 只看该作者
n=DS18B20_Get_Temp();  我这么写为什么n=0??

使用特权

评论回复
6
Edisons| | 2017-5-15 22:49 | 只看该作者
谢谢提供,很有用的例子。。

使用特权

评论回复
7
_gege| | 2017-5-15 22:55 | 只看该作者
DS18B20的STM32单片机程序,多谢分享。

使用特权

评论回复
8
Mozarts| | 2017-5-15 22:56 | 只看该作者
    DS18B20温度传感器实验 有什么作用吗?

使用特权

评论回复
9
woshizhengjie89| | 2017-5-15 23:15 | 只看该作者
这温度传感器已经有点不适应时代了,多找找物联网相关的传感器,功能多,精读高,是做产品的选择

使用特权

评论回复
10
woshizhengjie89| | 2017-5-15 23:17 | 只看该作者
不要一提到温度传感器,确只能想到它,low了,就像学英语,词汇量体现一个人的水平

使用特权

评论回复
11
cdlongbo| | 2017-5-16 00:06 | 只看该作者
学习了,很早以前用51调试过!

使用特权

评论回复
12
dongnanxibei| | 2017-5-16 09:57 | 只看该作者
有没有一条线上挂好几个的那种。

使用特权

评论回复
13
huangcunxiake| | 2017-5-16 21:28 | 只看该作者
直接可以拿走用啊?

使用特权

评论回复
14
qiufengsd| | 2017-5-16 23:49 | 只看该作者
这个移植51单片机的就行,控制时序

使用特权

评论回复
15
qiufengsd| | 2017-5-16 23:51 | 只看该作者
楼主的现在还是使用DS18b20,怎么不使用其他传感器

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

1557

帖子

2

粉丝