历史上的今天
今天是:2025年07月29日(星期二)
2020年07月29日 | stm32f103战舰v3OLED显示时间源程序
2020-07-29 来源:51hei
(适用正点原子的开发板)主要是在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);
LED0=!LED0;
}
delay_ms(10);
史海拾趣
|
先运行39SF040的PP指令,往其中一个字节内存单元写一个字节数据,然后再读出,数据可以读出。 但是程序里面不加PP指令,也不往里面写数据,而是直接读上次写入的内存单元,结果读出的数据变了,而且是每次断电,在给系统上电,读出的数据就变了。 ...… 查看全部问答> |
|
去年下半年,三星推出S3C6410之后,由于其主频高,视频处理能力强等优势,笼罩在ARM11光环之下,更延续了三星系列一惯的性价比优势,而倍受业界关注。更有成功案例如苹果IPHONE、魅族M8等。不知这颗冉冉升起的新星,能否继2440之后,成为下一轮的领 ...… 查看全部问答> |
|
最近我把u-boot移植到了QQ2440中,既然大家都有mini2440 那么就把u-boot移植到mini2440上吧!过程我认为最麻烦的是对NANDFLASH的支持中,其它的时钟等配置只要我们稍加更改就行! 我也没写具体的过程不过我看到几个写的不错的就上传给大家可以参考 ...… 查看全部问答> |
|
我用的是三星arm2440,ce5.0,我发现一个奇怪的问题,机器重启后,第一次调用SetLocalTime设置时间不对,设置的时间是一个默认值2008-1,但是以后再调用SetLocalTime就不会出现这个问题了,请问这是什么原因,是ce的一个bug,SetLocalTime对应的应 ...… 查看全部问答> |
|
在option.h中 mclk=320000000这个值是根据什么确定的呢? 如果对它进行修改,会发生什么影响? 另外,在uart传输数据的时候,收发双方如何保证自己这边的频率与对方差不多? 当我们在ulcon中设定了某种祯格式,对方如何知道?如何检错? 我 ...… 查看全部问答> |
|
我电脑两个串口上连接两个GPRS MODEM同时拨号上网,默认情况下是使用一个连接.我想在程序中控制两个连接怎么同时使用呀,即有的数据通过一个连接发送出去,另外一些数据通过另外一个连接发送出去呀,应该怎么办呀,请各位帮忙.非常感谢呀!… 查看全部问答> |
|
上图先: 1、拿到板子后,开始查看(貌似没给我发LED,可能是玄空大师装掉了吧,幸好之前的板子上还有,拆了下来 ),率先把EP2C5Q208、SDRAM、FLASH、PL2303焊上,拖了半天,还是给拖上去了,哈哈! 2、把104的电容全焊上,对照位号找了大半天呢 ...… 查看全部问答> |




