你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32小项目-0.96寸OLED时钟程序,万年历,大字体

[复制链接]
STMCU小助手 发布时间:2022-6-21 17:58
   用的是stm32自带的RTC时钟。硬件连接很简单,当然程序也是比较简单的,只写了温度(DS18B20),stm32自带RTC和OLED显示,大家可自行删改功能。
    硬件连接:
    SDA --》PB13
    SCL --》PB12
    DS18B20----》PA15
    OLED和DS18B20直接5V供电就成,效果如下:
微信图片_20220621175830.png
    单片机源程序如下:
  1. #include "sys.h"
  2. #include "usart.h"
  3. #include "delay.h"
  4. #include "led.h"
  5. #include "key.h"
  6. #include "oled.h"
  7. #include "beep.h"
  8. #include "rtc.h"
  9. #include "ds18b20.h"

  10. u8 year_buf[4];
  11. u8 month_buf[2];
  12. u8 day_buf[2];
  13. u8 temp_buf[4];

  14. int main(void)
  15. {               
  16.         u16 temp;
  17.         delay_init();             //延时初始化
  18.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  19.        Gpio_IIC_Init();
  20.         RTC_Init();         //RTC初始化
  21.         DS18B20_Init();
  22.         OLED_Init();
  23.         delay_ms(200);
  24.         OLED_CLS();
  25.         OLED_P16x16Ch(40,0,36);//第一行第三列显示年
  26.         OLED_P16x16Ch(72,0,37);        //显示月
  27.         OLED_P16x16Ch(106,0,38);        //显示日
  28.         OLED_P16x16Ch(0,6,39);//星
  29.         OLED_P16x16Ch(16,6,41);//期
  30.         OLED_P16x16Ch(32,2,34);
  31.         OLED_P16x16Ch(32,4,35);//:
  32.         OLED_P16x16Ch(80,2,34);
  33.         OLED_P16x16Ch(80,4,35);//:
  34. while(1)
  35.         {
  36. sprintf((char *)year_buf,"%04d",calendar.w_year);
  37.                 OLED_P8x16Str(8,0,year_buf);
  38. sprintf((char *)month_buf,"%02d",calendar.w_month);
  39.                 OLED_P8x16Str(58,0,month_buf);
  40. sprintf((char *)day_buf,"%02d",calendar.w_date);
  41.                 OLED_P8x16Str(90,0,day_buf);

  42.                 OLED_P16x16Ch(0,2,calendar.hour/10*2);
  43.                 OLED_P16x16Ch(0,4,calendar.hour/10*2+1); //
  44.                 OLED_P16x16Ch(16,2,calendar.hour%10*2);
  45.                 OLED_P16x16Ch(16,4,calendar.hour%10*2+1);//

  46.                 OLED_P16x16Ch(48,2,calendar.min/10*2);
  47.                 OLED_P16x16Ch(48,4,calendar.min/10*2+1);//
  48.                 OLED_P16x16Ch(64,2,calendar.min%10*2);
  49.                 OLED_P16x16Ch(64,4,calendar.min%10*2+1);//

  50.                 OLED_P16x16Ch(95,2,calendar.sec/10*2);
  51.                 OLED_P16x16Ch(95,4,calendar.sec/10*2+1);//
  52.                 OLED_P16x16Ch(111,2,calendar.sec%10*2);
  53.                 OLED_P16x16Ch(111,4,calendar.sec%10*2+1);//

  54.                 OLED_P16x16Ch(32,6,calendar.week+20);//

  55.                 temp = DS18B20_Get_Temp();
  56.                 OLED_P16x16str(64,6,11);
  57.                 OLED_P16x16str(80,6,12);
  58.                 OLED_P16x16str(96,6,temp%1000/100);
  59.                 OLED_P16x16str(112,6,temp%100/10);

  60.         }
  61. }
复制代码

收藏 评论0 发布时间:2022-6-21 17:58

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版