目的
創建一個帶日歷的溫濕度計
步驟
- 新建rtc.c/rtc.h,并把兩個文件添加到user下面:
- rtc.c 代碼如下:
#include "rtc.h"
ErrorStatus rest_rtc(void)
{
ErrorStatus err_rtc;
RTC_InitTypeDef RTC_InitStruct = {0};
RCC_LSE_Enable(RCC_LSE_MODE_OSC, RCC_LSE_AMP_NORMAL, RCC_LSE_DRIVER_NORMAL); // 選擇LSE為RTC時鐘
RTC_InitStruct.DateStruct.Day = 0x27; //日
RTC_InitStruct.DateStruct.Month = RTC_Month_May;//月
RTC_InitStruct.DateStruct.Week = RTC_Weekday_Monday;//星期
RTC_InitStruct.DateStruct.Year = 0x23; //年
RTC_InitStruct.TimeStruct.Hour = 0x11; //時
RTC_InitStruct.TimeStruct.Minute = 0x58;//分
RTC_InitStruct.TimeStruct.Second = 0x59;//秒
RTC_InitStruct.TimeStruct.AMPM = 0;
RTC_InitStruct.TimeStruct.H24 = 0; //采用12小時設置
RTC_InitStruct.RTC_ClockSource = RTC_RTCCLK_FROM_LSE;
err_rtc = RTC_Init(&RTC_InitStruct); // RTC模塊初始化, 用戶需選定需要使用的時鐘源
if(err_rtc != SUCCESS)
{
return ERROR;
}
return SUCCESS;
}
rtc.h:
#ifndef __RTC_H__
#define __RTC_H__
#include "main.h"
ErrorStatus rest_rtc(void);
#endif
修改主函數內容如下:
#include "main.h"
#include "Lcd_Driver.h"
#include "LCD_calculate.h"
#include "dht11.h"
#include "rtc.h"
unsigned int counttime=0;
float temperature;
uint8_t humidity;
char buff_1[15];
char buff_2[15];
char buff_rtc[30];
void GPIO_Configuration(void);
void RCC_Configuration(void);
void BTIM_init(void);
int main()
{
RTC_InitTypeDef RTC_InitStruct = {0};
RCC_Configuration(); //系統時鐘64M
GPIO_Configuration(); //LED初始化
BTIM_init(); //定時器初始化
Lcd_Init();
Lcd_Clear(GRAY0); //清屏
Redraw_Mainmenu();
while(DHT11_GPIO_Config()) //DHT11初始化
{
}
rest_rtc();
while(1)
{
if(counttime>500) //200毫秒采集一次數據并更新屏幕
{
counttime=0;
DHT11_Read_Data(&temperature,&humidity); //讀取溫濕度
sprintf(buff_1,"%0.1f",temperature);
sprintf(buff_2,"%d",humidity);
Gui_DrawFont_GBK16(90,25,BLUE,GRAY0,buff_1); //更新顯示
Gui_DrawFont_GBK16(90,47,BLUE,GRAY0,buff_2);
RTC_GetDate(&RTC_InitStruct.DateStruct);// 取用當前日期,BCD格式
sprintf(buff_rtc,"20%02x-%02x-%02x",RTC_InitStruct.DateStruct.Year, RTC_InitStruct.DateStruct.Month, RTC_InitStruct.DateStruct.Day );
Gui_DrawFont_GBK16(10,80,BLUE,GRAY0,buff_rtc);
RTC_GetTime(&RTC_InitStruct.TimeStruct);// 獲取當前時間,BCD格式
sprintf(buff_rtc,"%02x:%02x:%02x",RTC_InitStruct.TimeStruct.Hour, RTC_InitStruct.TimeStruct.Minute, RTC_InitStruct.TimeStruct.Second );
Gui_DrawFont_GBK16(10,100,BLUE,GRAY0,buff_rtc);
}
}
}
編譯下載到開發板,運行效果如下:
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
日歷
+關注
關注
0文章
15瀏覽量
8999 -
2CW
+關注
關注
0文章
2瀏覽量
6001 -
溫濕度計
+關注
關注
1文章
23瀏覽量
8031 -
CW32
+關注
關注
1文章
143瀏覽量
354 -
武漢芯源
+關注
關注
1文章
58瀏覽量
156
發布評論請先 登錄
相關推薦
【CW32飯盒派開發板試用體驗】+機械臂游戲項目(開源)(4)多加點東西
接上三篇,繼續本項目開發?!?b class='flag-5'>CW32飯盒派開發板試用體驗】+機械臂游戲項目(開源)(1)開箱試驗舵機 - 武漢芯源MCU - 電子技術論壇-
發表于 05-08 18:40
【CW32飯盒派開發板試用體驗】+機械臂游戲項目(開源)(5)加紅外游戲操控機
接上幾篇:
【CW32飯盒派開發板試用體驗】+機械臂游戲項目(開源)(1)開箱試驗舵機 - 武漢芯源MCU - 電子技術論壇 - 廣受歡迎的專業電子論壇!
【
發表于 05-24 22:27
【CW32飯盒派開發板試用體驗】1. 開箱啦
了用戶在使用的時候的接線。
而且所有引出口都有引腳說明,這點很棒,點贊。
本面有所有引出口的引腳說明,這點很好,方便用戶查看,點贊。
總結
總的來時,武漢芯源CW32飯盒派開發板做的還
發表于 05-27 20:05
【CW32飯盒派開發板試用體驗】+開箱+軟件
溫濕度接口;
這些功能保證 CW32飯盒派 可以外接非常多的模塊來做各種測試,也可以提供豐富的接口來擴展這塊開發板。
看下資源,使用此
發表于 05-29 08:41
【CW32飯盒派開發板試用體驗】+初識CW32飯盒派開發板
盼星星,盼月亮,終于收到了CW32飯盒派開發板?;叵肫鹉翘齑饛蛥⒓踊顒余]件發出去的那一刻,就在期盼。
以前也了解過CW32單片機,這是一款非
發表于 05-29 15:51
【CW32飯盒派開發板試用體驗】6.硬件I2C之連接HS300X讀取溫濕度數據
器
【CW32飯盒派開發板試用體驗】4. ADC采樣搖桿模塊X軸和Y軸輸出
【CW32飯盒
發表于 06-07 21:45
【CW32飯盒派開發板試用體驗】+萬物互聯之溫濕度采集
CW32飯盒派開發板 提供了多種傳感器的接口,上面就有溫濕度傳感器DHT11的接口。但是,我手上只有4個腳的DHT11芯片,并沒有3個腳的D
發表于 06-11 16:05
【CW32飯盒派開發板試用體驗】+萬物互聯之溫濕度顯示
的圖案更加漂亮和美觀。對于UI設計,我涉及的面比較窄,以后的好好利用飯盒派這款多接口的帶屏幕的開發板。對于刷新,我是500ms調用一次溫濕度采集和屏幕刷新程序。特殊的場合有特殊的做法,
發表于 06-26 20:33
評論