找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4056|回复: 3
收起左侧

stm32f103电子时钟温湿度程序 RTC+DHT11+OLED

  [复制链接]
ID:862583 发表于 2021-1-5 10:50 | 显示全部楼层 |阅读模式
OLED显示温湿度DHT11,有时间又加了个电子时钟。
程序借鉴了里面一位道友,他程序应该能成功,但仿真有问题。
我稍微改了一下,仿真问题没有解决:温湿度只能显示00,年份只能是1970,没有显示设置时间。
看实物图
51hei图片20210105103547.jpg

电子时钟温湿度显示

电子时钟温湿度显示


时间修改在RTC.C中RTC_Set设置时间
main.c程序
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "oled.h"
  4. #include "bmp.h"
  5. #include "rtc2.h"
  6. #include "dht11.h"
  7. int main(void)
  8. {
  9.                 int wendu=0,shidu=0;
  10.                 u8 t;
  11.                 delay_init();  //精准延时初始化
  12.                 OLED_Init();   //OLED初始化
  13.                 OLED_ShowPicture(0,0,128,64,BMP3,1);  //开机画面龙猫
  14.                 OLED_Refresh();  //更新显存到OLED
  15.                 RTC_Init();  //TRC初始化
  16.                 delay_ms(1000); //延时
  17.                 OLED_ColorTurn(0);//0正常显示,1 反色显示
  18.                 OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示

  19.                 //delay_ms(500);
  20.                 OLED_Clear();  //清屏
  21.                 OLED_ShowChinese(45,2,9,12,1);//12*12 年        
  22.           OLED_ShowChinese(70,2,10,12,1);//12*12 月        
  23.           OLED_ShowChinese(96,2,2,12,1);//12*12 日        
  24.           OLED_ShowChinese(0,51,11,12,1);//12*12 温
  25.           OLED_ShowChinese(13,51,13,12,1);//12*12 度
  26.           OLED_ShowChinese(69,51,12,12,1);//12*12 湿
  27.           OLED_ShowChinese(82,51,13,12,1);//12*12 度
  28.           OLED_ShowChinese(48,51,14,12,1);//12*12 ℃        
  29.           OLED_ShowChinese(116,51,15,12,1);//12*12 %        
  30.           OLED_Refresh();
  31.                 while(1)
  32.         {               
  33.                 if(t!=calendar.sec)
  34.                 {
  35.                         t=calendar.sec;
  36.                         OLED_ShowNum(20,3,calendar.w_year,4,12,1);                //输出2021
  37.                         OLED_ShowNum(58,3,calendar.w_month,2,12,1);        //输出月份
  38.                         OLED_ShowNum(83,3,calendar.w_date,2,12,1);  //输出日期
  39.                         OLED_ShowString(51,17,":",24,1);  //:
  40.                         OLED_DrawLine(10,16,117,16,1);   //输出上横线
  41.                         OLED_DrawLine(13,19,114,19,1);
  42.                         
  43.                         OLED_DrawLine(10,16,10,48,1);   //输出左竖线
  44.                         OLED_DrawLine(13,19,13,45,1);
  45.                         
  46.                         OLED_DrawLine(117,16,117,48,1);  //输出右竖线
  47.                         OLED_DrawLine(114,19,114,45,1);
  48.                         
  49.                         OLED_DrawLine(10,48,117,48,1);  //输出下竖线
  50.                         OLED_DrawLine(13,45,114,45,1);
  51.                         OLED_Refresh();
  52.                         
  53.                         OLED_ShowNum(27,20,calendar.hour,2,24,1);  //输出时
  54.                   OLED_ShowNum(63,20,calendar.min,2,24,1);   // 输出分
  55.                   OLED_ShowNum(91,29,calendar.sec,2,12,1);   //输出秒
  56.                   OLED_Refresh();

  57.                 if(DHT11_ReadData(&shidu,&wendu))  //如果DHT11读取到数据了,那么就显示                  
  58.                         {  
  59.                                 OLED_ShowNum(32,51,wendu,2,12,1);    //输出温度  
  60.                                 OLED_ShowNum(100,51,shidu,2,12,1);    //输出湿度
  61.                          }  
  62. //                else   //若DHT11采集不成功,那么就失败  
  63. //                        {  
  64. //                                OLED_ShowString(32,51,"??",12,1);   
  65. //                                OLED_ShowString(100,51,"??",12,1);   
  66. //                        }
  67.                         delay_ms(500);
  68.                         //delay_ms(500);  //延时,避免刷新DHT11数据太块                          
  69.         }         
  70. }
  71.                 //OLED_ScrollDisplay(11,4,1);
  72. }
复制代码
全部程序51hei下载地址:
stm32OLED.7z (234.13 KB, 下载次数: 255)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:495323 发表于 2021-3-10 16:20 | 显示全部楼层
完整32的型号是什么
回复

使用道具 举报

ID:635093 发表于 2021-4-2 14:44 | 显示全部楼层

只要是stm32f103系列的都可以,我用的c86
回复

使用道具 举报

ID:851922 发表于 2021-5-2 11:08 | 显示全部楼层
请问有PCB图吗  有的我也做个试试
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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