stm32f103战舰v3OLED显示时间源程序

2020-07-29来源: 51hei关键字:stm32f103  战舰v3OLED  显示时间

(适用正点原子的开发板)主要是在OLED 屏幕上实时时间,如果时间不准时,可以先使用实验15 RTC实验  然后烧写进开发板,在XCOM串口调试助手发送命令如:RTC_Set(2020,06,04,23,25,30)  即可完成RTC校准!!!!


main.c代码如下:


#include "led.h"

#include "delay.h"

#include "key.h"

#include "sys.h"

#include "oled.h"

#include "rtc.h"  

        

int main(void)

{        u8 t=0;

        delay_init();                     //延时函数初始化         

        RTC_Init();                                  //RTC初始化

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

         LED_Init();                             //LED端口初始化

        OLED_Init();                        //初始化OLED      

  OLED_ShowString(0,0,"ALIENTEK",24);  


        OLED_Refresh_Gram();                //更新显示到OLED


        while(1)

        {               

                 OLED_Refresh_Gram();

                delay_ms(500);

                LED0=!LED0;

                if(t!=calendar.sec)

                {

                        t=calendar.sec;

                        OLED_ShowNum(0,24,calendar.w_year,4,12);  

                          OLED_ShowString(24,24, "-",12);

                        if(calendar.w_month<10)

                         {        

                                 OLED_ShowNum(30,24,0,1,12);

                           OLED_ShowNum(36,24,calendar.w_month,1,12);

                         }else OLED_ShowNum(36,24,calendar.w_month,2,12);  

                          OLED_ShowString(42,24, "-",12);

                         if(calendar.w_date<10)

                         {

                                 OLED_ShowNum(48,24,0,1,12);

                           OLED_ShowNum(54,24,calendar.w_date,1,12);  

                         }else OLED_ShowNum(48,24,calendar.w_date,2,12);  

                        switch(calendar.week)

                        {

                                case 0:

                                                 OLED_ShowString(64,24,"Sunday",12);  

                                        break;

                                case 1:

                                                OLED_ShowString(64,24,"Monday",12);

                                        break;

                                case 2:

                                                OLED_ShowString(64,24,"Tuesday",12);

                                        break;

                                case 3:

                                         OLED_ShowString(64,24,"Wednesday",12);

                                        break;

                                case 4:

                                        OLED_ShowString(64,24,"Thursday",12);

                                        break;

                                case 5:

                                        OLED_ShowString(64,24,"Friday",12);

                                        break;

                                case 6:

                                        OLED_ShowString(64,24,"Saturday",12);

                                        break;  

                        }

                        if(calendar.hour<10)

                        {

                         OLED_ShowNum(0,36,0,1,16);

                         OLED_ShowNum(8,36,calendar.hour,1,16);

                        }else

                        OLED_ShowNum(0,36,calendar.hour,2,16);

                        

                        OLED_ShowString(16,36,":",16);

                        

                        if(calendar.min<10)

                        {

                         OLED_ShowNum(24,36,0,1,16);

                         OLED_ShowNum(32,36,calendar.min,1,16);

                        }else                        

                  OLED_ShowNum(24,36,calendar.min,2,16);  

                        

            OLED_ShowString(40,36,":",16);

                        

                        if(calendar.sec<10)

                        {

                         OLED_ShowNum(48,36,0,1,16);

                         OLED_ShowNum(56,36,calendar.sec,1,16);

                        }else OLED_ShowNum(48,36,calendar.sec,2,16);  

[1] [2]
关键字:stm32f103  战舰v3OLED  显示时间 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic504699.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32状态监测功能包可简化机器学习过程
下一篇:STM32开源闭环步进电机源程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm32f103基本定时器,定时器中断服务程序里面输出脉冲波形
;while(1);}time.c#include "stm32f10x.h"#include "time.h"#include "delay.h"#include "beep.h"#include<stdio.h>void TIME_Init(void){       TIM_TimeBaseInitTypeDef  time3;//定义基本定时器结构体名字        RCC_APB1PeriphClockCmd(RCC
发表于 2020-08-05
<font color='red'>stm32f103</font>基本定时器,定时器中断服务程序里面输出脉冲波形
stm32f103ADC测试程序,16路ADC采样+DMA传送数据
_PeripheralBaseAddr =(u32)&(ADC1->DR);/*定义内存基地址*/DMA_InitStructure.DMA_MemoryBaseAddr =(u32)ADC_Value;/*定义AD外设作为数据传输的来源*/DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;/*指定DMA通道的DMA缓存的大小,即需要开辟几个内存空间,由ADC_CH_NUM这个宏决定*/DMA_InitStructure.DMA_BufferSize = ADC_CH_NUM;        /*设定寄存器地址固定*/DMA
发表于 2020-08-04
Proteus8.8版本+ STM32F103驱动LCD1602显示程序+按键+ADC+串口
STM32F103仿真驱动点亮LCD1602一、开发环境介绍proteus 8.8 版本+ STM32CubeMX 4.18.0程序基于keil集成开发环境编写,基于ST官方的HAL库。STM32CubeMX pack版本STM32CubeMX的版本二、项目功能介绍该项目程序中实现了1、程序实现了LCD1602的点亮显示2、程序中实现了STM32的AD采样3、程序中实现了串口通信4、程序中实现了按键控制操作通过滑动变阻器加放大器改变输入值。后边加上lcd1602,初始化显示“光节点检测系统”然后加个按键按下开始 显示“光功率值:(多少)dbm 这里的范围就0-100通过调节前边电位器每次只变化一下, 输出某个数。按键控制串口发送
发表于 2020-08-03
Proteus8.8版本+ <font color='red'>STM32F103</font>驱动LCD1602显示程序+按键+ADC+串口
基于STM32F103平台CANOPEN工业协议源码
单片机源程序如下:/* Includes ------------------------------------------------------------------*/#include "stm32f10x.h"#include "delay.h"#include "can.h"#include "mco.h"#include "lcd.h"#include "bsp.h"#include "i2c.h"#include "24cxx.h"#include
发表于 2020-08-03
stm32f103 DMA接收定长数据和不定长数据
;                               //按键初始化  POINT_COLOR=RED;//设置字体为红色        LCD_ShowString(30,50,200,16,16,"WarShip STM32");         
发表于 2020-08-03
Proteus仿真stm32f103实现SPI
单片机源程序如下:#include "stm32f10x.h"#include "spi.h"#include "Module.h"#include<stdio.h>void Delay_Ms(u16 time);void RCC_Configuration(void);//void GPIO_Configuration(void);u32 retry=0;       int i=0;/* Private functions
发表于 2020-07-29
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved