久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2125|回復: 0
打印 上一主題 下一主題
收起左側

AT-START-F403A開發板的RTC測試驗證

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 jinglixixi 于 2020-9-29 20:16 編輯

原打算先為開發板配置一個顯示屏,有了顯示窗口就便于信息輸出了,無奈耗了幾天的時間也沒使OLED屏顯示半點痕跡,先在例程的功能模塊上練練手了。
RTC是大多數ARM產品都配置的功能,自然AT32F403AF也不例外,沒有OLED屏做支撐,也就只能依賴串口通信了,無奈呀,無奈!
由于開發板自身就可以虛擬出串口,也就省去了外掛USBTTL串口模塊的麻煩,當然這個虛擬出的串口占用的編號比較大,只能將其強行改的小一些,否則串口調試工具可不答應。
將程序編譯下載后,其運行效果如圖1所示。

1 運行效果
天啊,這哥們兒還停留在2018年吶!
老哥醒醒吧,光陰荏苒,現在已經是2020年了。
喚醒老哥的辦法只有一個,那就是修改初始時間設置。
打開時間設置函數才發現事情有點怪,什么情況?
你親自看下面這個函數吧!
  1. uint8_t RTC_Set(uint16_t syear, uint8_t smon, uint8_t sday, uint8_t hour, uint8_t min, uint8_t sec)
  2. {
  3.          uint32_t t;
  4.          uint32_t seccount=0;
  5.          if(syear<1970||syear>2099)
  6.                   return 1;
  7.          for(t=1970;t<syear;t++)
  8.          {
  9.                    if(Is_Leap_Year(t))seccount+=31622400;
  10.                    else seccount+=31536000;
  11.          }
  12.          smon-=1;
  13.          for(t=0;t<smon;t++)
  14.          {
  15.                    seccount+=(uint8_t)mon_table[t]*86400;
  16.                    if(Is_Leap_Year(syear)&&t==1)seccount+=86400;           
  17.          }
  18.          seccount+=(uint8_t)(sday-1)*86400;
  19.          seccount+=(uint8_t)hour*3600;
  20.          seccount+=(uint8_t)min*60;
  21.          seccount+=sec;
  22.          /* Enable PWR and BKP clock */
  23.          RCC_APB1PeriphClockCmd(RCC_APB1PERIPH_PWR | RCC_APB1PERIPH_BKP, ENABLE);
  24.          /* Enable write access to Backup domain */
  25.          PWR_BackupAccessCtrl(ENABLE);
  26.          /* Set the RTC counter value */
  27.          RTC_SetCounter(seccount);
  28.          /* Wait until last write operation on RTC registers has finished */
  29.          RTC_WaitForLastTask();
  30.          return 0;     
  31. }
復制代碼

看出來沒有,我們通常使用的RTC函數是從相應的寄存器中讀取時間值和日期值。
這哥們兒竟然需要統一算到秒,莫非它就是一個大號的秒信號計數器呀!
設置時間時折算到秒來更新計時值,讀取時再按進制變換成年月日、分時秒。
難怪在程序的數組中存放了這些清規戒律吶!
const uint8_t table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5};
const uint8_tmon_table[12]={31,28,31,30,31,30,31,31,30,31,30,31};
原來是怕老哥出軌呀!
通過分析RTC初始化函數RTC_Init(),才發現初始時間的設置函數被藏在這里,其內容是RTC_Set(2018,8, 8, 8, 8, 0);
別客氣,按電腦的系統時間將它擺平了!
修改后經程序的程序編譯下載,其步調終于跟上隊了,其時間效果如圖2所示。
嗯,表現還不賴!
哎,就怪我的表現不好,沒有及時為你配上一個顏值高的小臉蛋!算哥欠你的。

2 更新RTC計時

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产婷婷国产香蕉 | 国产精品久久久久久久久久 | 综合自拍| 中文字幕爱爱视频 | 成人免费小视频 | 欧美最猛黑人xxxx黑人 | 亚洲精品视频在线观看视频 | 精品日韩在线 | 日韩黄a| 福利成人 | 国产精品一区久久久久 | 成av在线 | 日韩在线视频一区 | 最新av在线播放 | 亚洲精品久久久久国产 | 午夜a√| 免费观看一区二区三区毛片 | 国产精品jizz在线观看老狼 | 成人精品福利 | 国产精品一区二区三区99 | 成人欧美一区二区三区在线观看 | 成人在线视频网址 | 久久久久精 | 男人天堂网av | 99久久99 | 欧美在线视频一区二区 | www312aⅴ欧美在线看 | 日韩一区二区三区在线 | 精品久久久久久 | 成人精品一区二区三区中文字幕 | 久久精品99 | 天堂免费 | 韩国毛片一区二区三区 | 亚洲va中文字幕 | 夜夜草 | 亚洲一区中文字幕在线观看 | 国产在线看片 | 天天操天天拍 | av日日操 | 精品麻豆剧传媒av国产九九九 | 欧美一区二区三区,视频 |