[应用相关] STM32&DS18b20程序 已调试通过

[复制链接]
3965|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 | 显示全部楼层
请问,双路温度测量可以用么

评论

欢迎砸场子  发表于 2017-5-16 12:12
laozhongyi 发表于 2017-5-15 22:48 | 显示全部楼层
n=DS18B20_Get_Temp();  我这么写为什么n=0??
Edisons 发表于 2017-5-15 22:49 | 显示全部楼层
谢谢提供,很有用的例子。。
_gege 发表于 2017-5-15 22:55 | 显示全部楼层
DS18B20的STM32单片机程序,多谢分享。
Mozarts 发表于 2017-5-15 22:56 | 显示全部楼层
    DS18B20温度传感器实验 有什么作用吗?
woshizhengjie89 发表于 2017-5-15 23:15 来自手机 | 显示全部楼层
这温度传感器已经有点不适应时代了,多找找物联网相关的传感器,功能多,精读高,是做产品的选择
woshizhengjie89 发表于 2017-5-15 23:17 来自手机 | 显示全部楼层
不要一提到温度传感器,确只能想到它,low了,就像学英语,词汇量体现一个人的水平
cdlongbo 发表于 2017-5-16 00:06 | 显示全部楼层
学习了,很早以前用51调试过!
dongnanxibei 发表于 2017-5-16 09:57 | 显示全部楼层
有没有一条线上挂好几个的那种。
huangcunxiake 发表于 2017-5-16 21:28 来自手机 | 显示全部楼层
直接可以拿走用啊?
qiufengsd 发表于 2017-5-16 23:49 | 显示全部楼层
这个移植51单片机的就行,控制时序
qiufengsd 发表于 2017-5-16 23:51 | 显示全部楼层
楼主的现在还是使用DS18b20,怎么不使用其他传感器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

1557

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部