久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
STM32三鍵可調(diào)RTC源程序
[打印本頁]
作者:
派大星就是藝術(shù)
時間:
2020-4-10 23:48
標(biāo)題:
STM32三鍵可調(diào)RTC源程序
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "bmp.h"
#include "usmart.h"
#include "rtc.h"
#include "usart.h"
#include "key.h"
#include "beep.h"
int main(void)
{
u8 t;
u16 i=0;
u8 key;
vu8 time_day=1;
vu8 time_hour=1;
vu8 time_min=1;
init_add();
Stm32_Clock_Init(9); //系統(tǒng)時鐘設(shè)置
uart_init(72,115200); //串口初始化為115200
usmart_dev.init(72); //初始化USMART
delay_init(72);
OLED_Init();
OLED_ColorTurn(0);//0正常顯示,1 反色顯示
OLED_DisplayTurn(0);//0正常顯示 1 屏幕翻轉(zhuǎn)顯示
KEY_Init();
BEEP_Init();
while(RTC_Init()) //RTC初始化 ,一定要初始化成功
{
OLED_ShowString(8,16,"RTC ERROR!",16);
delay_ms(800);
OLED_ShowString(8,32,"RTC Trying...",16);
}
while(1)
{
end:
key=KEY_Scan(0);
if(key)
{
switch(key)
{
case 1://調(diào)時間
while(1)
{
key=KEY_Scan(0);
switch(key)
{
case 1://設(shè)置day
OLED_Clear();
while(1)
{
delay_ms(1);
i++;
OLED_ShowString(16,20,"date:",24);
if(i<66) OLED_ShowNum(80,20,calendar.w_date+add_calendar.day-1,2,24);
OLED_Refresh();
if(i<88&&i>66)
{
OLED_ShowString(80,20," ",24);
OLED_Refresh();
}
if(i>88)i=0;
key=KEY_Scan(0);
switch(key)
{
case 1: goto end;
case 2: add_calendar.day++;
RTC->CRL|=1<<4; //允許配置
RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date+add_calendar.day-1,calendar.hour+add_calendar.hour-1,
calendar.min+add_calendar.min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
init_add();
break;
case 3:
add_calendar.day--;
RTC->CRL|=1<<4; //允許配置
RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date+add_calendar.day-1,calendar.hour+add_calendar.hour-1,
calendar.min+add_calendar.min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
init_add();
break;
}
}
case 2://設(shè)置hour
OLED_Clear();
while(1)
{
delay_ms(1);
i++;
OLED_ShowString(16,20,"hour:",24);
if(i<66) OLED_ShowNum(80,20,calendar.hour+add_calendar.hour-1,2,24);
OLED_Refresh();
if(i<88&&i>66)
{
OLED_ShowString(80,20," ",24);
OLED_Refresh();
}
if(i>88)i=0;
key=KEY_Scan(0);
switch(key)
{
case 1:
add_calendar.hour++;
RTC->CRL|=1<<4; //允許配置
RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date+add_calendar.day-1,calendar.hour+add_calendar.hour-1,
calendar.min+add_calendar.min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
init_add();
break;
case 2: goto end;
case 3:
add_calendar.hour--;
RTC->CRL|=1<<4; //允許配置
RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date+add_calendar.day-1,calendar.hour+add_calendar.hour-1,
calendar.min+add_calendar.min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
init_add();
break;
}
}
case 3://設(shè)置min
OLED_Clear();
while(1)
{
delay_ms(1);
i++;
OLED_ShowString(16,20,"min:",24);
if(i<66) OLED_ShowNum(80,20,calendar.min+add_calendar.min-1,2,24);
OLED_Refresh();
if(i<88&&i>66)
{
OLED_ShowString(80,20," ",24);
OLED_Refresh();
}
if(i>88)i=0;
key=KEY_Scan(0);
switch(key)
{
case 1:
add_calendar.min++;
RTC->CRL|=1<<4; //允許配置
RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date+add_calendar.day-1,calendar.hour+add_calendar.hour-1,
calendar.min+add_calendar.min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
init_add();
break;
case 2:
add_calendar.min--;
RTC->CRL|=1<<4; //允許配置
RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date+add_calendar.day-1,calendar.hour+add_calendar.hour-1,
calendar.min+add_calendar.min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
init_add();
break;
case 3: goto end;
}
}
default: break;
}
}
case 2://調(diào)鬧鐘
while(1)
{
key=KEY_Scan(0);
switch(key)
{
case 1://設(shè)置day
OLED_Clear();
while(1)
{
delay_ms(1);
i++;
OLED_ShowString(16,20,"date:",24);
if(i<66) OLED_ShowNum(80,20,calendar.w_date+time_day-1,2,24);
OLED_Refresh();
if(i<88&&i>66)
{
OLED_ShowString(80,20," ",24);
OLED_Refresh();
}
if(i>88)i=0;
key=KEY_Scan(0);
switch(key)
{
case 1: goto end;
case 2: time_day++;
RTC->CRL|=1<<4; //允許配置
RTC_Alarm_Set(calendar.w_year,calendar.w_month,calendar.w_date+time_day-1,calendar.hour+time_hour-1,
calendar.min+time_min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
time_day=1;
time_hour=1;
time_min=1;
break;
case 3:
time_day--;
RTC->CRL|=1<<4; //允許配置
RTC_Alarm_Set(calendar.w_year,calendar.w_month,calendar.w_date+time_day-1,calendar.hour+time_hour-1,
calendar.min+time_min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
time_day=1;
time_hour=1;
time_min=1;
break;
}
}
case 2://設(shè)置hour
OLED_Clear();
while(1)
{
delay_ms(1);
i++;
OLED_ShowString(16,20,"hour:",24);
if(i<66) OLED_ShowNum(80,20,calendar.hour+time_hour-1,2,24);
OLED_Refresh();
if(i<88&&i>66)
{
OLED_ShowString(80,20," ",24);
OLED_Refresh();
}
if(i>88)i=0;
key=KEY_Scan(0);
switch(key)
{
case 1:
time_hour++;
RTC->CRL|=1<<4; //允許配置
RTC_Alarm_Set(calendar.w_year,calendar.w_month,calendar.w_date+time_day-1,calendar.hour+time_hour-1,
calendar.min+time_min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
time_day=1;
time_hour=1;
time_min=1;
break;
case 2: goto end;
case 3:
add_calendar.hour--;
RTC->CRL|=1<<4; //允許配置
RTC_Alarm_Set(calendar.w_year,calendar.w_month,calendar.w_date+time_day-1,calendar.hour+time_hour-1,
calendar.min+time_min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
time_day=1;
time_hour=1;
time_min=1;
break;
}
}
case 3://設(shè)置min
OLED_Clear();
while(1)
{
delay_ms(1);
i++;
OLED_ShowString(16,20,"min:",24);
if(i<66) OLED_ShowNum(80,20,calendar.min+time_min-1,2,24);
OLED_Refresh();
if(i<88&&i>66)
{
OLED_ShowString(80,20," ",24);
OLED_Refresh();
}
if(i>88)i=0;
key=KEY_Scan(0);
switch(key)
{
case 1:
time_min++;
RTC->CRL|=1<<4; //允許配置
RTC_Alarm_Set(calendar.w_year,calendar.w_month,calendar.w_date+time_day-1,calendar.hour+time_hour-1,
calendar.min+time_min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
time_day=1;
time_hour=1;
time_min=1;
break;
case 2:
time_min--;
RTC->CRL|=1<<4; //允許配置
RTC_Alarm_Set(calendar.w_year,calendar.w_month,calendar.w_date+time_day-1,calendar.hour+time_hour-1,
calendar.min+time_min-1,calendar.sec);
RTC->CRL&=~(1<<4); //配置更新
time_day=1;
time_hour=1;
time_min=1;
break;
case 3: goto end;
}
}
default: break;
}
}
default: break;
}
}
//鬧鐘設(shè)置
// RTC->CRL|=1<<4; //允許配置
// RTC_Alarm_Set(2020,4,3,12,25,00);
// RTC->CRL&=~(1<<4); //配置更新
//
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
三鍵可調(diào)RTC1.0.7z
2020-4-11 00:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
121.5 KB, 下載次數(shù): 10, 下載積分: 黑幣 -5
作者:
admin
時間:
2020-4-11 13:36
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
99精品久久
|
久99久视频
|
欧美精品在线免费
|
日韩国产在线
|
国产成人一区在线
|
国产精品一区二区三区在线
|
欧美黄色片
|
玖玖视频国产
|
日韩av一二三区
|
男人的天堂久久
|
少妇精品久久久久久久久久
|
亚洲欧美在线一区
|
精品九九
|
亚洲成人免费在线
|
综合久久99
|
一区二区片
|
中文字幕久久久
|
免费观看一级毛片视频
|
国产7777
|
国产一区二区在线播放
|
一区二区三区国产精品
|
国产精品无码专区在线观看
|
欧美在线视频观看
|
国产美女自拍视频
|
二区精品
|
男人天堂网站
|
日本成人午夜影院
|
国产精品成人一区
|
一区二区在线
|
国内精品99
|
精品免费
|
在线成人av
|
午夜成人在线视频
|
91在线色视频
|
欧美激情久久久
|
99精品一级欧美片免费播放
|
久久69精品久久久久久久电影好
|
久久久毛片
|
中文字幕 国产精品
|
www日本高清视频
|
亚洲成人一区
|