野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13235|回复: 6

用F1控制OLED显示DS18B20D的数据

[复制链接]
发表于 2018-4-29 10:24:39 | 显示全部楼层 |阅读模式
本人刚学32不久,前几天买回来的OLED显示屏和DS18B20温度传感器,请问一下有经验的前辈,怎么让DS18B20所测得的数值显示在OLED上面,具体有哪些步骤?欢迎大佬赐教!!!谢谢!
回复

使用道具 举报

 楼主| 发表于 2018-4-29 10:25:14 | 显示全部楼层
1楼是我的,来沙发一波,不要沉了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-29 15:40:37 | 显示全部楼层
没有人吗?难受了呀。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-30 09:39:06 | 显示全部楼层
是不是五一都回去休假了??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-3 16:21:26 | 显示全部楼层
是不是学完I2C那一章节就可以实现该功能了?
回复 支持 反对

使用道具 举报

发表于 2018-10-22 14:12:19 | 显示全部楼层
KingSealEast 发表于 2018-4-28 14:25
1楼是我的,来沙发一波,不要沉了!


#include "stm32f4xx.h"
#include "usart/bsp_debug_usart.h"
#include "systick/bsp_SysTick.h"
#include "DS18B20/bsp_ds18b20.h"
#include "oled.h"
#include <stdio.h>

//用于存储格式化后字符串的数组
unsigned  char cStr [ 10 ];
        

float temperature;

/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */
int main(void)
{       
        uint8_t uc,DS18B20Id[8];
                unsigned char i;
  /*初始化USART,配置模式为 115200 8-N-1*/
  Debug_USART_Config();
  printf("\r\n 实验开始***\n");
       
        /* 系统定时器初始化 */
        SysTick_Init();
       
       

        I2C_Configuration();//配置CPU的硬件I2C
        OLED_Init();    //初始化OLED
       
        printf("\r\n OLED初始化成功,OLED正在工作! \r\n");
       
        if(DS18B20_Init()==0)
        {
                printf("DS18B20初始化成功\n");
        }
        else
        {
                printf("DS18B20初始化失败\n");
                printf("请将传感器正确插入到插槽内\n");
                /* 停机 */
                while(1)
                {}                       
        }               
        DS18B20_ReadId ( DS18B20Id  );           // 读取 DS18B20 的序列号
       
        printf("\r\nDS18B20的序列号是: 0x");

        for ( uc = 0; uc < 8; uc++ )             // 打印 DS18B20 的序列号
        printf ( "%.2x", DS18B20Id[uc]);
        printf("\n");
       
  while(1)
        {
                temperature=DS18B20_Get_Temp();
               
                printf("DS18B20读取到的温度为:%0.3f\n",temperature);
               
                  
   
    //sprintf把temperature的值格式化到字符串里的%d位置,格式化的结果存储在cStr中
    //要转换浮点型变量可以使用 %f
       sprintf ( (char*)cStr, "%0.3f",temperature );
               
    //显示字符串,把cStr作为输入进行显示。以下函数是液晶的字符串显示函数,可根据自己的液晶驱动修改
      
                OLED_CLS();//清屏       
               
    for(i=0;i<4;i++)
                {
                        OLED_ShowCN(22+i*16,0,i);                                                                        //测试显示中文
                }
               
    OLED_ShowStr(30,2, cStr, 2);
       
                         
              Delay_ms(1000);
               
        }        
}
               
               
       
               
               

               
               
   
         








       
       

//拿走不谢
回复 支持 反对

使用道具 举报

发表于 2018-10-29 20:12:10 | 显示全部楼层
你好 请问这个问题是怎么解决的  我现在也碰到了类似的问题    能给说一下吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-23 00:25 , Processed in 0.078479 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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