标题: STM32&DS18b20程序 已调试通过 [打印本页]

作者: tang2008    时间: 2017-2-14 16:27
标题: STM32&DS18b20程序 已调试通过
DS18B20的STM32单片机程序,我调试过了

全部源码下载:
DS18B20.rar (2.99 MB, 下载次数: 344)


主程序:
  1. /****************************************Copyright (c)****************************************************
  2. **                                       
  3. **                                 
  4. **
  5. **--------------File Info---------------------------------------------------------------------------------
  6. ** File name:                       
  7. ** Last modified Date:         
  8. ** Last Version:                  
  9. ** Descriptions:                                                       
  10. **--------------------------------------------------------------------------------------------------------
  11. ** Created by:                        FiYu
  12. ** Created date:                2015-12-12
  13. ** Version:                            1.0
  14. ** Descriptions:                DS18B20温度传感器实验                               
  15. **--------------------------------------------------------------------------------------------------------
  16. ** Modified by:                        FiYu
  17. ** Modified date:               
  18. ** Version:                               
  19. ** Descriptions:               
  20. ** Rechecked by:                       
  21. **********************************************************************************************************/
  22. /****-----请阅读ReadMe.txt进行实验-----***********/

  23. #include "stm32f10x.h"
  24. #include "delay.h"
  25. #include "ds18b20.h"
  26. #include "usart.h"

  27. /**************************************************************************************
  28. * 描  述 : GPIO/USART1初始化配置
  29. * 入  参 : 无
  30. * 返回值 : 无
  31. **************************************************************************************/
  32. void GPIO_Configuration(void)
  33. {
  34.         GPIO_InitTypeDef GPIO_InitStructure;
  35.        
  36.         /* Enable the GPIO_LED Clock */
  37.         RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO , ENABLE);                                                  
  38.                
  39.   GPIO_DeInit(GPIOB);         //将外设GPIOA寄存器重设为缺省值
  40.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  41.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  42.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽输出
  43.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  44.        
  45.         GPIO_DeInit(GPIOA);         //将外设GPIOA寄存器重设为缺省值
  46.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  47.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  48.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    //推挽输出
  49.         GPIO_Init(GPIOA, &GPIO_InitStructure);

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

  56. /**************************************************************************************
  57. * 描  述 : MAIN函数
  58. * 入  参 : 无
  59. * 返回值 : 无
  60. **************************************************************************************/
  61. int main(void)
  62. {
  63.         SystemInit();                        //设置系统时钟72MHZ
  64.         GPIO_Configuration();
  65.         USART1_Init();    //初始化配置TIM
  66.         GPIO_ResetBits(GPIOB , GPIO_Pin_9);
  67.         delay_ms(500);       
  68.        
  69.         while( DS18B20_Init())       
  70.         {
  71.                 printf("\r\n no ds18b20 exit \r\n");
  72.                 GPIO_SetBits(GPIOB , GPIO_Pin_9);
  73.         }       
  74.         printf("\r\n ds18b20 exit \r\n");
  75.         GPIO_SetBits(GPIOB , GPIO_Pin_9);
  76.        
  77.         for(;;)
  78.         {       
  79.                 printf("\r\n temperature %.1f\r\n",DS18B20_Get_Temp());                                 
  80.                 delay_ms(1500);                     // 1.5s 读取一次温度值
  81.         }
  82.        
  83. }

  84. /*********************************END FILE********************************************/
复制代码



作者: xiari408    时间: 2017-3-27 21:13
谢谢提供
作者: hhq520189    时间: 2017-4-22 19:52
好东西
作者: cm7626    时间: 2017-4-24 07:59
可以和51驱动18B20的代码对比,你明白更多。
作者: 想学的小菜鸟    时间: 2017-5-4 13:46
#在这里快速回复#n=DS18B20_Get_Temp();  我这么写为什么n为0
作者: 想学的小菜鸟    时间: 2017-5-4 13:46
n=DS18B20_Get_Temp();  我这么写为什么n为0
作者: 想学的小菜鸟    时间: 2017-5-4 13:47
cm7626 发表于 2017-4-24 07:59
可以和51驱动18B20的代码对比,你明白更多。

n=DS18B20_Get_Temp();  我这么写为什么n=0??

作者: 想学的小菜鸟    时间: 2017-5-4 13:48
n=DS18B20_Get_Temp();  我这么写为什么n=0??

作者: loft_demon    时间: 2017-5-14 15:51
厉害了,我的哥~
作者: loft_demon    时间: 2017-5-14 15:53
双路温度测量可以用么
作者: loft_demon    时间: 2017-5-17 20:59
已下载,很不错
作者: gdlai    时间: 2017-9-20 11:13
怎么打不开下载页面?
作者: lyh1987a    时间: 2017-11-8 16:34
厉害了,我的哥~
作者: Integral    时间: 2017-12-10 19:45
想学的小菜鸟 发表于 2017-5-4 13:48
n=DS18B20_Get_Temp();  我这么写为什么n=0??

我和其他代码一结合也变成0了啊.......
作者: zhanliangliang    时间: 2018-2-2 17:31
厉害,我的哥~
作者: tianbian1991    时间: 2018-2-11 21:11
6666666666666666666666666666666666666666666666666666666
可以和51驱动18B20的代码对比,你明白更多。
作者: 51qiang    时间: 2018-4-13 09:55
好东西
作者: husttianwei    时间: 2018-4-28 19:23
真厉害!!!!!!!!
作者: luoteyy1996    时间: 2018-7-8 16:15
厉害了,很有用
作者: xiyuzlf    时间: 2018-7-25 15:10
刚好在学这个,先码着
作者: 赫鲁晓夫    时间: 2018-8-2 19:50
谢谢分享                                                                     
作者: jipinxlm    时间: 2018-8-8 17:28
楼主真是太好了,给你点赞!
作者: abit    时间: 2018-9-2 20:17
mark一下
作者: tgerqwtwqet    时间: 2018-9-29 21:45
特别感谢

作者: hoursjl    时间: 2018-10-12 10:48
好不好用?
作者: 爱生活!    时间: 2018-11-10 12:33
非常感谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1