0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STM32的0.96寸OLED时钟程序

单片机与嵌入式 来源:单片机与嵌入式 2023-05-08 09:58 次阅读

用的是stm32自带的RTC时钟硬件连接很简单,当然程序也是比较简单的,只写了温度(DS18B20),stm32自带RTC和OLED显示,大家可自行删改功能。

硬件连接:

SDA --》PB13

SCL --》PB12

DS18B20----》PA15

OLED和DS18B20直接5V供电就成,效果如下:

044af910-ed43-11ed-90ce-dac502259ad0.png

单片机源程序如下:

#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "oled.h"
#include "beep.h"
#include "rtc.h"
#include "ds18b20.h"


u8 year_buf[4];
u8 month_buf[2];
u8 day_buf[2];
u8 temp_buf[4];


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


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


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


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


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


                temp = DS18B20_Get_Temp();
                OLED_P16x16str(64,6,11);
                OLED_P16x16str(80,6,12);
                OLED_P16x16str(96,6,temp%1000/100);
                OLED_P16x16str(112,6,temp%100/10);


        }
}

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OLED
    +关注

    关注

    118

    文章

    5986

    浏览量

    221444
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348743
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130306
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79541
  • RTC
    RTC
    +关注

    关注

    2

    文章

    484

    浏览量

    65438

原文标题:STM32小项目-0.96寸OLED时钟程序,万年历,大字体

文章出处:【微信号:单片机与嵌入式,微信公众号:单片机与嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    stm32f407vet6驱动0.96oled,显示屏无法显示怎么解决?

    stm32f407vet6驱动0.96oled——iic协议代码无报错时钟正确显示屏无法显示
    发表于 03-14 06:49

    问题 0.96OLED

    买了这个OLED显示屏,可是客服给的资料都是全英文的,所以来请求各位学长 大神是否有中文版的0.96OLED屏资料,同时希望各位大神能留个联系方式我的QQ:2389954298
    发表于 05-28 11:06

    0.96OLED动态显示

    求大神解救,用51单片机做超声波测距,0.96OLED屏I2C通信显示,但无法动态显示,传过去现实的数据时乱码,是不是我的显示数据格式不对?附上程序图,拜托各位了。
    发表于 08-25 00:15

    【GD32330C-START开发板试用体验】0.96OLED显示实验

    `最近刚入手一块0.96OLED屏, 今天阳光明媚, 山竹消逝, 心血来潮, 花了一下午时间在GD32330开发板上测试一下. Ps: GD32330代码风格有点不习惯, 也许是我还没掌握吧.实验
    发表于 09-19 17:19

    0.96OLED 屏幕stm32显示程序自整理资料

    0.96OLED 屏幕stm32显示程序自整理资料。亲测有效。
    发表于 07-25 15:49

    STM32 HAL库下实现硬件IIC+DMA控制0.96 OLED

    目录前言一、建立工程二、编写和移植前期准备驱动部分修改三、使用和验证结论本文参考例程提取码:1e64前言本文将介绍在STM32 HAL库下实现硬件IIC+DMA控制0.96 OLED
    发表于 08-12 07:01

    分享一个基于STM32F407的中景园0.96OLED程序升级方法

    分享一个基于STM32F407的中景园0.96OLED程序升级方法
    发表于 10-14 08:18

    如何编写0.96OLED的底层驱动?

    如何编写0.96OLED的底层驱动?
    发表于 11-23 06:02

    基于 SPI 协议在 0.96 OLED

    硬件——0.96OLED显示屏模块0.91 1.3液晶屏供原理图12864屏 IIC/SPI
    发表于 11-30 08:26

    STM32F103ZET6 IIC驱动0.96OLED的方法

    STM32F103ZET6 IIC驱动0.96OLED说明之前购买了一个0.96
    发表于 01-18 06:11

    请问STM32Cubemx硬件SPI如何驱动七针0.96OLED

    请问STM32Cubemx硬件SPI如何驱动七针0.96OLED
    发表于 02-17 07:25

    基于stm320.96 OLED驱动架构模块代码有何功能

    基于stm320.96 OLED驱动架构模块代码有何特点?基于stm320.96
    发表于 02-21 06:47

    怎样使用STM320.96OLED显示屏上实现字符滚动呢

    使用STM320.96OLED显示屏上实现字符滚动一、初识OLED屏滚动命令二、对所需显示文本取模三、主要代码四、效果展示五、参考资料、
    发表于 02-24 07:25

    自制0.96OLED显示模组

    描述OLED显示模组0.96(7PIN)0.96'OLED(7Pin)模组采用SSD1306为主芯片,像素为128*64,通讯方
    发表于 08-12 06:36

    stm32驱动0.96OLED

    stm32驱动0.96OLED开机OLED不显示,只有烧录了一个简单的点亮程序再烧录原来的程序才正常显示
    发表于 12-16 11:41