色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(14)RTC 模塊介紹

聚沃科技 ? 2024-08-23 09:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

GD32 MCU內(nèi)部提供了一個RTC(實時時鐘)模塊,通過RTC可以實現(xiàn)日歷時鐘、鬧鐘等功能。RTC也可以用于深度睡眠或待機模式的低功耗喚醒。不同系列的GD32 MCU在RTC設(shè)計和功能上有所區(qū)別,總體可以分為三大系列:

(1)F10x、F30x、E10x系列RTC功能基本相同,后文簡稱0x系列。

(2)F1x0、F3x0、E23x系列RTC功能基本相同,后文簡稱x0系列。

(3)F405、F407、F450系列RTC功能基本相同,后文簡稱4xx系列。后文會對0x系列、x0系列、4xx系列的RTC模塊分別進(jìn)行介紹,簡單介紹RTC的工作原理、配置使用方法。

14.1.GD32 RTC 外設(shè)簡介

0x 系列 RTC

0x系列RTC整體架構(gòu)相對精簡,主要依靠32位累加計數(shù)器配置分頻實現(xiàn)時鐘計數(shù)。日歷功能可通過軟件計算并寫入備份域中實現(xiàn);同時具有鬧鐘功能可用于定時產(chǎn)生中斷和喚醒喚醒事件;RTC的核心計數(shù)部分在備份域中,可在VDD斷電時VBAT供電的情況保持RTC的計數(shù),正常上電工作時通過APB總線接口可對RTC寄存器進(jìn)行配置。

0x系列RTC主要特點:

? 32位可編程計數(shù)器,用于計數(shù)運行時間

– 可編程的預(yù)分頻器: 分頻系數(shù)最高可達(dá)220

? 獨立時鐘域:

– PCLK1時鐘域

– RTC時鐘域(該時鐘必須比PCLK1時鐘至少慢4倍)

? RTC時鐘源:

– HXTAL時鐘分頻

– LXTAL振蕩電路時鐘

– IRC40K振蕩電路時鐘

? 可屏蔽的中斷源:

– 鬧鐘中斷

– 秒中斷

– 溢出中斷

0x系列RTC框圖介紹:

RTC由兩個主要部分組成,如下圖0x系列RTC結(jié)構(gòu)框圖所示,位于PCLK1時鐘域的APB接口和位于RTC時鐘域的RTC內(nèi)核。

輸入圖片說明

第一部分APB接口用來和APB1總線相連。此單元還包含一組16位寄存器,可通過APB1總線對其進(jìn)行讀寫操作。對RTC模塊進(jìn)行相關(guān)配置。

另一部分(RTC核心)由一組可編程計數(shù)器組成,分成兩個主要模塊。第一個模塊是RTC的預(yù)分頻模塊,RTC時鐘源輸入后經(jīng)過預(yù)分頻模塊,可編程產(chǎn)生RTC時間基準(zhǔn)SC_CLK。RTC的預(yù)分頻模塊包含了一個20位的可編程分頻器(RTC預(yù)分頻器);如果在RTC_INTEN寄存器中設(shè)置了相應(yīng)的允許位,則在每個SC_CLK周期中RTC產(chǎn)生一個中斷(秒中斷)。

第二個模塊是一個32位的可編程計數(shù)器,可被初始化為當(dāng)前的系統(tǒng)時間。系統(tǒng)時間按SC_CLK周期累加并與存儲在RTC_ALRM寄存器中的可編程時間相比較,如果RTC_INTEN控制寄存器中設(shè)置了相應(yīng)允許位,比較匹配時將產(chǎn)生一個鬧鐘中斷。

x0 系列 RTC

0x系列RTC提供了一個包含日期(年/月/日)和時間(時/分/秒/亞秒)的日歷功能。除亞秒用二進(jìn)制碼顯示外,時間和日期都以BCD碼的形式顯示。RTC可以進(jìn)行夏令時補償。RTC可以工作在省電模式下,并通過軟件配置來智能喚醒。RTC支持外接更高精度的低頻時鐘,用以達(dá)到更高的日歷精度。

x0系列RTC主要特點:

? 通過軟件設(shè)置來實現(xiàn)夏令時補償。

? 參考時鐘檢測功能:通過外接更高精度的低頻率時鐘源(50Hz/60Hz)來提高日歷精度。

? 數(shù)字校準(zhǔn)功能:通過調(diào)整最小時間單位(最大可調(diào)精度0.95ppm)來進(jìn)行日歷校準(zhǔn)。

? 通過移位功能進(jìn)行亞秒級調(diào)整。

? 記錄事件時間的時間戳功能。

? 兩個模式可配置的獨立的侵入檢測。

? 可編程的日歷和一個位域可屏蔽的鬧鐘。

? 5個32位(共20字節(jié))通用備份寄存器,能夠在省電模式下保存數(shù)據(jù)。當(dāng)有外部事件侵入時,備份寄存器將會復(fù)位。

? 可屏蔽的中斷源:

– 鬧鐘0;

– 時間戳檢測;

– 侵入檢測;

x0系列RTC框圖介紹:

x0系列RTC工作在備份域,可在低功耗模式下保持工作,通過APB總線可對RTC寄存器進(jìn)行讀取和配置。如下圖x0系列RTC結(jié)構(gòu)框圖所示,RTC時鐘源可配置通過數(shù)字平滑校準(zhǔn)或直接輸入到7位異步預(yù)分頻器輸出ck_apre時鐘用于RTC_SS亞秒寄存器自減計數(shù),ck_apre時鐘又經(jīng)過15位同步預(yù)分頻器后輸出1HZ的ck_spre時鐘提供日歷寄存器使用;基于日歷寄存器還實現(xiàn)了鬧鐘和時間戳功能;RTC還具有鬧鐘、時鐘輸出功能,對RTC_TS、RTC_TAMP0、RTC_TAMP1引腳的有效輸入可觸發(fā)時間戳和侵入事件并產(chǎn)生中斷。侵入事件會將備份域復(fù)位。

輸入圖片說明

? 鬧鐘

RTC鬧鐘功能被劃分為多個位域并且每一個位域有一個該域的可屏蔽位。屏蔽某些位域后可固定周期產(chǎn)生鬧鐘事件。

? 侵入事件

RTC_TAMPx管腳可以作為侵入事件檢測功能輸入管腳,檢測模式有兩種可供用戶選擇:邊沿檢測模式或者是帶可配置濾波功能的電平檢測模式。侵入事件會將備份域復(fù)位,可產(chǎn)生一個中斷。

? 可選的RTC輸出功能:

512Hz( 默認(rèn)預(yù)分頻值): RTC_OUT;

1Hz( 默認(rèn)預(yù)分頻值): RTC_ OUT;

鬧鐘事件( 極性可配置): RTC_ OUT。

? 可選的RTC輸入功能:

時間戳事件檢測( RTC_TS);

侵入事件檢測 0( RTC_TAMP0);

侵入事件檢測 1( RTC_TAMP1);

參考時鐘輸入 RTC_REFIN( 50 或 60Hz)。

? RTC中斷

所有的RTC中斷(鬧鐘、時間戳、侵入事件)都被連接到EXTI控制器

4xx 系列 RTC 4xx系列RTC在x0系列RTC的基礎(chǔ)上做了部分功能的升級。提供了一個包含日期(年/月/日)和時間(時/分/秒/亞秒)的日歷功能。除亞秒用二進(jìn)制碼顯示外,時間和日期都以BCD碼的形式顯示。

RTC可以進(jìn)行夏令時補償。RTC可以工作在省電模式下,并通過軟件配置來智能喚醒。RTC支持外接更高精度的低頻時鐘,用以達(dá)到更高的日歷精度。

  1. 4xx系列RTC主要特點:

? 通過軟件設(shè)置來實現(xiàn)夏令時補償。

? 參考時鐘檢測功能:通過外接更高精度的低頻率時鐘源(50Hz或60Hz)來提高日歷精度。

? 數(shù)字校準(zhǔn)功能:通過調(diào)整最小時間單位(最大可調(diào)精度0.95ppm)來進(jìn)行日歷校準(zhǔn)。

? 通過移位功能進(jìn)行亞秒級調(diào)整。

? 記錄事件時間的時間戳功能。

? 兩個模式可配置的獨立的侵入檢測。

? 可編程的日歷和一個位域可屏蔽的鬧鐘。

? 20個32位(共80字節(jié))通用備份寄存器,能夠在省電模式下保存數(shù)據(jù)。當(dāng)有外部事件侵入時,備份寄存器將會復(fù)位。

? 可屏蔽的中斷源:

– 鬧鐘0和鬧鐘1;

– 時間戳檢測;

– 自動喚醒事件;

– 侵入檢測;

? 可配置周期的自動喚醒定時器

4xx系列RTC框圖介紹:

4xx系列RTC工作在備份域,可在低功耗模式下保持工作,通過APB總線可對RTC寄存器進(jìn)行讀取和配置。如下圖4xx系列RTC結(jié)構(gòu)框圖所示,RTC時鐘源可配置通過數(shù)字平滑校準(zhǔn)或直接輸入到7位異步預(yù)分頻器輸出ck_apre時鐘用于RTC_SS亞秒寄存器自減計數(shù),ck_apre時鐘又可通過數(shù)字粗平滑校準(zhǔn)或直接輸入15位同步預(yù)分頻器后輸出1HZ的ck_spre時鐘提供日歷寄存器使用;基于日歷寄存器還實現(xiàn)了鬧鐘和時間戳功能;RTC還具有鬧鐘、時鐘輸出功能,對RTC_TS、RTC_TAMP0、RTC_TAMP1引腳的有效輸入可觸發(fā)時間戳和侵入事件并產(chǎn)生中斷。侵入事件會將備份域復(fù)位。4xx系列RTC有一個獨立的自動重加載喚醒定時器可用于產(chǎn)生喚醒事件和中斷。

輸入圖片說明

? 鬧鐘

RTC鬧鐘功能被劃分為多個位域并且每一個位域有一個該域的可屏蔽位。屏蔽某些位域后可固定周期產(chǎn)生鬧鐘事件。

? 侵入事件

RTC_TAMPx管腳可以作為侵入事件檢測功能輸入管腳,檢測模式有兩種可供用戶選擇:邊沿檢測模式或者是帶可配置濾波功能的電平檢測模式。侵入事件會將備份域復(fù)位,可產(chǎn)生一個中斷。

? 可選的RTC輸出功能:

512Hz(默認(rèn)預(yù)分頻值):(RTC_OUT)PC13

1Hz(默認(rèn)預(yù)分頻值):(RTC_OUT)PC13

鬧鐘事件(極性可配置):(RTC_OUT)PC13

自動喚醒事件(極性可配置):(RTC_OUT)PC13

? 可選的RTC輸入功能:

時間戳事件檢測(RTC_TS):RTC_AF0、RTC_AF1;

侵入事件檢測 0(RTC_TAMP0):RTC_AF0、RTC_AF1;

侵入事件檢測 1(RTC_TAMP1):RTC_AF1;

參考時鐘輸入 RTC_REFIN(50或60Hz)。

? RTC中斷

所有的RTC中斷(鬧鐘0、鬧鐘1、喚醒、時間戳、侵入0、侵入1)都被連接到EXTI控制器。

各系列 RTC 模塊功能對比

x0系列中的E23x系列均沒有VBAT引腳,不支持VDD掉電保持RTC工作。

0x系列備份域不同于x0、4xx系列,為單獨的一個外設(shè)模塊,所以使用RTC時,0x系列相比x0系列和4xx系列還需使能BKP的時鐘。

各系列 RTC 模塊功能對比

輸入圖片說明

14.2.GD32 RTC 硬件設(shè)計

? Vbat電源設(shè)計

Vbat可以連接至外部電池,在Vdd掉電時可以保證備份域不掉電、RTC繼續(xù)運行。VBAT引腳需要對GND連接0.1uF電容,如果沒有外部電池需要將VBAT和一個0.1uF電容連接至Vdd電源上。

輸入圖片說明

? RTC_TAMPx引腳

入侵事件會導(dǎo)致備份域復(fù)位,如使用該功能需注意檢測引腳的濾波,可在RTC_TAMPx引腳上并聯(lián)0.1uf電容。

14.3.GD32 RTC 軟件配置

GD32MCU_Example下的RTC_Example例程配置了日歷和鬧鐘功能,并開啟了鬧鐘中斷。本小節(jié)講解RTC_Example例程中RTC模塊的配置說明,主要包括時鐘及分頻配置、日歷配置、鬧鐘配置、主函數(shù)說明。本例程主要介紹GD32 MCU各系列RTC模塊的時間、鬧鐘配置,有關(guān)RTC其他功能例程可參考各系列固件庫例程。

時鐘及分頻配置

? 由于RTC工作在備份域,所以使用RTC時需要使能備份域?qū)懝δ埽刂苽浞萦驅(qū)懝δ艿募拇嫫魑挥赑MU中,所以操作RTC還需要將PMU_CTL寄存中的BKPWEN置位,從而還需使能PMU的時鐘。而對于0x系列備份域為單獨的外設(shè),還需額外使能BKP備份域時鐘。

? 為了實現(xiàn)準(zhǔn)確的日歷功能,配置RTC前需要準(zhǔn)備好需要的時鐘源,在選擇合適的時鐘源后RTC還需要進(jìn)行預(yù)分頻的配置。

0x系列時鐘及分頻配置如代碼清單 RTC 0x系列時鐘及分頻配置所示,RTC使能后需要等待RTC寄存器和APB1時鐘同步,執(zhí)行rtc_register_sync_wait()函數(shù);此外0x系列RTC在RTC寄存器配 置時需要等待上一次配置結(jié)束才能繼續(xù)新的配置,所以在每個寄存器配置前需要執(zhí)行rtc_lwoff_wait()函數(shù),等待LWOFF置位。

代碼清單 RTC 0x 系列時鐘及分頻配置

void rtc_config(void) { uint32_t prescaler=0; /* enable PMU and BKPI clocks */ rcu_periph_clock_enable(RCU_BKPI); rcu_periph_clock_enable(RCU_PMU); /* allow access to BKP domain */ pmu_backup_write_enable(); #if RTC_CLOCK_SOURCE_IRC40K prescaler=40000; /* enable LXTAL */ rcu_osci_on(RCU_IRC40K); /* wait till LXTAL is ready */ rcu_osci_stab_wait(RCU_IRC40K); /* select RCU_LXTAL as RTC clock source */ rcu_rtc_clock_config(RCU_RTCSRC_IRC40K); #elif RTC_CLOCK_SOURCE_LXTAL prescaler=32767; /* enable LXTAL */ rcu_osci_on(RCU_LXTAL); /* wait till LXTAL is ready */ rcu_osci_stab_wait(RCU_LXTAL); /* select RCU_LXTAL as RTC clock source */ rcu_rtc_clock_config(RCU_RTCSRC_LXTAL); #else #error RTC clock source should be defined. #endif /* RTC_CLOCK_SOURCE_IRC40K */ /* enable RTC Clock */ rcu_periph_clock_enable(RCU_RTC); /* wait for RTC registers synchronization */ rtc_register_sync_wait(); /* wait until last write operation on RTC registers has finished */ rtc_lwoff_wait(); /* set RTC prescaler: set RTC period to 1s */ rtc_prescaler_set(prescaler); rtc_lwoff_wait(); rtc_interrupt_enable(RTC_INT_ALARM); rtc_lwoff_wait(); }

x0系列時鐘及分頻配置如代碼清單 RTC x0系列時鐘及分頻配置所示,RTC使能后需要等待RTC寄存器和APB1時鐘同步,執(zhí)行rtc_register_sync_wait()函數(shù);和0x系列不同,后續(xù)配置過程x0和4xx系列均不需要執(zhí)行rtc_lwoff_wait()函數(shù)。

代碼清單 RTC x0 系列時鐘及分頻配置

void rtc_config(void) { /* enable PMU clock */ rcu_periph_clock_enable(RCU_PMU); /* enable the access of the RTC registers */ pmu_backup_write_enable(); #if (RTC_CLOCK_SOURCE_IRC40K) rcu_osci_on(RCU_IRC40K); rcu_osci_stab_wait(RCU_IRC40K); rcu_rtc_clock_config(RCU_RTCSRC_IRC40K); prescaler_s = 0x18F; prescaler_a = 0x63; #elif (RTC_CLOCK_SOURCE_LXTAL) rcu_osci_on(RCU_LXTAL); rcu_osci_stab_wait(RCU_LXTAL); rcu_rtc_clock_config(RCU_RTCSRC_LXTAL); prescaler_s = 0xFF; prescaler_a = 0x7F; #else #error RTC clock source should be defined. #endif /* RTC_CLOCK_SOURCE_IRC40K */ rcu_periph_clock_enable(RCU_RTC); rtc_register_sync_wait(); rtc_interrupt_enable(RTC_INT_ALARM); }

4xx系列時鐘及分頻配置如代碼清單 RTC 4xx系列時鐘及分頻配置所示,和x0系列基本相同,但由于4xx系列內(nèi)部低速時鐘為32K,所以分頻系數(shù)和x0系列有所不同。

代碼清單 RTC 4xx 系列時鐘及分頻配置

void rtc_config(void) { /* enable PMU clock */ rcu_periph_clock_enable(RCU_PMU); /* enable the access of the RTC registers */ pmu_backup_write_enable(); #if (RTC_CLOCK_SOURCE_IRC32K) rcu_osci_on(RCU_IRC32K); rcu_osci_stab_wait(RCU_IRC32K); rcu_rtc_clock_config(RCU_RTCSRC_IRC32K); prescaler_s = 0x13F; prescaler_a = 0x63; #elif (RTC_CLOCK_SOURCE_LXTAL) rcu_osci_on(RCU_LXTAL); rcu_osci_stab_wait(RCU_LXTAL); rcu_rtc_clock_config(RCU_RTCSRC_LXTAL); prescaler_s = 0xFF; prescaler_a = 0x7F; #else #error RTC clock source should be defined. #endif /* RTC_CLOCK_SOURCE_IRC32K */ rcu_periph_clock_enable(RCU_RTC); rtc_register_sync_wait(); rtc_interrupt_enable(RTC_INT_ALARM0); }

日歷配置

0x系列由于沒有硬件日歷功能,所以需要讀取計數(shù)器通過軟件計算出日歷;而x0系列和4xx系列具有硬件日歷功能,日期信息均是BCD碼,所以在日歷配置的格式和方式均有差別。

0x系列RTC的日歷配置如代碼清單 RTC 0x系列日歷配置所示,該函數(shù)提供了日歷配置的入口參數(shù),先將需要配置的日歷信息轉(zhuǎn)換成秒單位,再寫入RTC計數(shù)器即可。入口參數(shù)使用十進(jìn)制寫入。

代碼清單 RTC 0x 系列日歷配置

uint32_t rtc_time_set(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second) { uint16_t t; uint32_t seccount = 0; if(year < 1970 || year > 2099) return ERROR; for(t = 1970; t < year; t++){ if(is_leap_year(t)){ seccount += 31622400; }else{ seccount += 31536000; } } month -= 1; for(t=0; t < month; t++){ seccount += (uint32_t)month_table[t] * 86400; if(is_leap_year(year) && t==1){ seccount+=86400; } } seccount += (uint32_t)(day-1) * 86400; seccount += (uint32_t)hour * 3600; seccount += second; rtc_lwoff_wait(); rtc_counter_set(seccount); rtc_lwoff_wait(); return SUCCESS; }

x0系列RTC的日歷配置如代碼清單 RTC x0系列日歷配置所示,該函數(shù)提供了日歷配置的入口參數(shù),參數(shù)為BCD碼格式,寫入后對RTC日歷結(jié)構(gòu)體賦初值,日歷結(jié)構(gòu)體還可以配置星期、時間格式等,這里默認(rèn)配置了24小時制。函數(shù)入口參數(shù)使用16進(jìn)制寫入。

代碼清單 RTC x0 系列日歷配置

uint32_t rtc_time_set(uint16_t year,uint8_t month,uint8_t day,uint32_t tmp_hh,uint32_t tmp_mm,uint32_t tmp_ss) { rtc_initpara.rtc_factor_asyn = prescaler_a; rtc_initpara.rtc_factor_syn = prescaler_s; rtc_initpara.rtc_year = year&0x00ff; rtc_initpara.rtc_day_of_week = RTC_SATURDAY; rtc_initpara.rtc_month = month; rtc_initpara.rtc_date = day; rtc_initpara.rtc_display_format = RTC_24HOUR; rtc_initpara.rtc_am_pm = RTC_AM; rtc_initpara.rtc_hour = tmp_hh; rtc_initpara.rtc_minute = tmp_mm; rtc_initpara.rtc_second = tmp_ss; if(ERROR == rtc_init(&rtc_initpara)){ return ERROR; } return SUCCESS; }

4xx系列RTC的日歷配置如代碼清單 0-52 RTC 4xx系列日歷配置所示,和x0系列基本相同, 唯一區(qū)別只是日歷結(jié)構(gòu)體成員名字少了“RTC_”的前綴。

代碼清單 RTC 4xx 系列日歷配置

uint32_t rtc_time_set(uint16_t year,uint8_t month,uint8_t day,uint32_t tmp_hh,uint32_t tmp_mm,uint32_t tmp_ss) { rtc_initpara.factor_asyn = prescaler_a; rtc_initpara.factor_syn = prescaler_s; rtc_initpara.year = year&0x00ff; rtc_initpara.day_of_week = RTC_SATURDAY; rtc_initpara.month = month; rtc_initpara.date = day; rtc_initpara.display_format = RTC_24HOUR; rtc_initpara.am_pm = RTC_AM; rtc_initpara.hour = tmp_hh; rtc_initpara.minute = tmp_mm; rtc_initpara.second = tmp_ss; if(ERROR == rtc_init(&rtc_initpara)){ return ERROR; } return SUCCESS; }

鬧鐘配置

0x系列的RTC通過32位計數(shù)器運行時間,所以其鬧鐘也是32位數(shù)據(jù),當(dāng)計數(shù)器和鬧鐘值匹配時會產(chǎn)生鬧鐘事件或中斷,所需配置的鬧鐘值為鬧鐘剩余倒計時加上當(dāng)前計數(shù)器值;而x0系列和4xx系列是硬件BCD日歷功能,所以其鬧鐘也是BDC格式,且具有位域屏蔽功能,根據(jù)需要直接配置具體的時間即可。

0x系列RTC的鬧鐘配置如代碼清單 RTC 0x系列鬧鐘配置所示,該函數(shù)提供了鬧鐘配置的入口參數(shù),先將需要配置的時間信息轉(zhuǎn)換成秒單位,再加上當(dāng)前計數(shù)器的值寫入鬧鐘寄存器即可。

0x系列配置的鬧鐘參數(shù)為鬧鐘中斷的倒計時時間,寫入?yún)?shù)為十進(jìn)制。

代碼清單 RTC 0x 系列鬧鐘配置

void rtc_alarm_set(uint8_t hour, uint8_t minute, uint8_t second) { alarm_second = 3600 * hour + minute * 60 + second; rtc_lwoff_wait(); rtc_alarm_config(rtc_counter_get() + alarm_second); rtc_lwoff_wait(); } seccount += (uint32_t)(day-1) * 86400; seccount += (uint32_t)hour * 3600; seccount += (uint32_t)minute * 60; seccount += second; rtc_lwoff_wait(); rtc_counter_set(seccount); rtc_lwoff_wait(); return SUCCESS; }

x0系列RTC的鬧鐘配置如代碼清單 RTC x0系列鬧鐘配置所示,該函數(shù)提供了鬧鐘配置的入口參數(shù),參數(shù)為BCD碼格式,寫入后對RTC鬧鐘結(jié)構(gòu)體賦初值,鬧鐘結(jié)構(gòu)體可以配置位域屏蔽、選擇配置日期或星期、時間格式等,這里默認(rèn)配置了屏蔽天、小時、分鐘,所以配置最后實際生效的只有秒,所以配置后鬧鐘均是1分鐘產(chǎn)生一次。鬧鐘配置前需失能鬧鐘,配置后再使能,4xx系列配置的鬧鐘參數(shù)為鬧鐘產(chǎn)生的日期時間,因BCD格式寫入?yún)?shù)參數(shù)使用16進(jìn)制。

代碼清單 RTC x0 系列鬧鐘配置

void rtc_alarm_set(uint32_t tmp_hh,uint32_t tmp_mm,uint32_t tmp_ss) { rtc_alarm_struct rtc_alarm; rtc_alarm_disable(); rtc_alarm.rtc_alarm_mask = RTC_ALARM_DATE_MASK|RTC_ALARM_HOUR_MASK|RTC_ALARM_MINUTE_MASK; rtc_alarm.rtc_weekday_or_date = RTC_ALARM_DATE_SELECTED; rtc_alarm.rtc_alarm_day = 0x31; rtc_alarm.rtc_am_pm = RTC_AM; rtc_alarm.rtc_alarm_hour = tmp_hh; rtc_alarm.rtc_alarm_minute = tmp_mm; rtc_alarm.rtc_alarm_second = tmp_ss; rtc_alarm_config(&rtc_alarm); rtc_alarm_enable(); }

4xx系列RTC的鬧鐘配置如代碼清單 0-55 RTC 4xx系列鬧鐘配置所示,和x0系列基本相同, 唯一區(qū)別只是鬧鐘結(jié)構(gòu)體成員名字少了“RTC_”的前綴。

代碼清單 RTC 4xx 系列鬧鐘配置

uint32_t rtc_time_set(uint16_t year,uint8_t month,uint8_t day,uint32_t tmp_hh,uint32_t tmp_mm,uint32_t tmp_ss) { rtc_initpara.factor_asyn = prescaler_a; rtc_initpara.factor_syn = prescaler_s; rtc_initpara.year = year&0x00ff; rtc_initpara.day_of_week = RTC_SATURDAY; rtc_initpara.month = month; rtc_initpara.date = day; rtc_initpara.display_format = RTC_24HOUR; rtc_initpara.am_pm = RTC_AM; rtc_initpara.hour = tmp_hh; rtc_initpara.minute = tmp_mm; rtc_initpara.second = tmp_ss; if(ERROR == rtc_init(&rtc_initpara)){ return ERROR; } return SUCCESS; }

主函數(shù)說明 主函數(shù)如代碼清單 RTC_Example主函數(shù)所示,主要包含了中斷配置、RTC時鐘源和預(yù)分頻配置、日歷設(shè)置以及鬧鐘設(shè)置,成功設(shè)置好日歷和鬧鐘后在備份域數(shù)據(jù)寄存器寫入一個標(biāo)志位,下次非備份域復(fù)位的情況就可以不再重復(fù)配置RTC。While1中循環(huán)調(diào)用rtc_current_time_get()函數(shù)獲取日歷信息。4xx系列和x0系列中固件庫底層已經(jīng)提供了rtc_current_time_get()函數(shù),直接更新至日歷結(jié)構(gòu)體;而0x系列固件庫沒有此函數(shù),額外編寫了相同接口的函數(shù),通過讀取32位計數(shù)器軟件計算出日歷信息更新至自定義的日歷結(jié)構(gòu)體中。通過仿真或串口打印可以看到結(jié)構(gòu)體中的時間數(shù)據(jù)在更新。

代碼清單 RTC_Example 主函數(shù)

int main(void) { /* NVIC configure */ nvic_config(); rtc_config(); alarm_second=5; if (RTC_BKP0 != 0xA5A5){ /* backup data register value is not correct or not yet programmed (when the first time the program is executed) */ #if defined GD32F10X_HD || GD32F30X_HD || GD32F20X_CL || GD32E10X if(SUCCESS==rtc_time_set(2019, 10, 14, 12, 0, 0)){ rtc_alarm_set(12, 12, alarm_second); #elif defined GD32F1X0 || GD32F4XX || GD32F3X0 || GD32E23X if(SUCCESS==rtc_time_set(0x2019, 0x10, 0x14, 0x12, 0, 0)){ rtc_alarm_set(0x12, 0x12, alarm_second); #endif RTC_BKP0=0xA5A5; } } while (1){ /* updata time in infinite loop */ rtc_current_time_get(&rtc_initpara); } }

代碼清單 0x 系列自定義 rtc_current_time_get()主函數(shù)

void rtc_current_time_get(rtc_parameter_struct* RTC_Calend) { static uint16_t daycnt = 0; uint32_t temp = 0,timevar=rtc_counter_get(); uint16_t temp1 = 0; temp = timevar / 86400; if(daycnt != temp) { daycnt = temp; temp1 = 1970; while(temp >= 365){ if(is_leap_year(temp1)){ if(temp >= 366) temp-=366; else break; }else temp -= 365; temp1++; } RTC_Calend->years = temp1; temp1=0; while(temp >= 28) { if(is_leap_year(RTC_Calend->years) && temp1 == 1){ if(temp >= 29) temp -= 29; else break; }else{ if(temp >= month_table[temp1]) temp -= month_table[temp1]; else break; } temp1++; } RTC_Calend->months = temp1 + 1; RTC_Calend->days = temp + 1; } temp = timevar % 86400; RTC_Calend->hours = temp / 3600; RTC_Calend->minutes = (temp % 3600) / 60; RTC_Calend->seconds = (temp % 3600) % 60; }

鬧鐘中斷說明

例程中開啟了鬧鐘中斷,初始化調(diào)用rtc_alarm_set(uint8_t hour, uint8_t minute, uint8_t second)函數(shù)分別配置了“0時0分5秒”的鬧鐘。

? 對0x系列來說這個配置是倒計時“0時0分5秒”后產(chǎn)生鬧鐘,進(jìn)入鬧鐘中斷后再配置新的5s實現(xiàn)5s一次的鬧鐘周期;

? 對x0和4xx系列這個配置是時間在“0時0分5秒”時產(chǎn)生鬧鐘,但因為鬧鐘配置中已經(jīng)屏蔽了鬧鐘的天、時、分位域,所以鬧鐘會在每分鐘的5秒產(chǎn)生,鬧鐘周期為一分鐘產(chǎn)生一次。

14.4.RTC 使用注意事項

1、 因為內(nèi)部低速時鐘是在VDDA電源域,所以VDD斷電后VBAT供電情況下保持RTC運行需要使用外部低速時鐘;此外使用LXTAL在非備份域復(fù)位時可以不用在初始化階段配置,但使用內(nèi)部低速時鐘需要每次復(fù)位都進(jìn)行內(nèi)部時鐘的初始化。

2、 內(nèi)部低速時鐘精度相對較差,如必須使用內(nèi)部且對精度有一定要求,4xx和0x系列可以使用TIMER4、x0系列可以使用TIMER13捕獲內(nèi)部低速時鐘,計算出實際的頻率值來進(jìn)行合適分頻。

3、 日歷信息意外被清零的話注意是否發(fā)生過備份域復(fù)位,是否有Vbat掉電或入侵事件發(fā)生。

4、 調(diào)試中如果修改了RTC代碼的配置,請先擦除全片F(xiàn)lash,然后斷電并上電后再下載新的代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6069

    文章

    45064

    瀏覽量

    653494
  • 嵌入式
    +關(guān)注

    關(guān)注

    5161

    文章

    19761

    瀏覽量

    319319
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5750

    瀏覽量

    106104
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    624

    瀏覽量

    69184
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    GD32 MCU 入門教程GD32 MCU 常見外設(shè)介紹(12)FMC 模塊介紹

    閃存控制器(FMC),提供了片上閃存需要的所有功能。FMC 也提供了頁擦除,整片擦除,以及32 位整字或 16 位半字編程閃存等操作。 GD32 MCU 支持不同類型編程的具體說明如下表 GD32
    的頭像 發(fā)表于 08-21 09:56 ?2266次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門教程</b>】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>常見外設(shè)</b><b class='flag-5'>介紹</b>(12)FMC <b class='flag-5'>模塊</b><b class='flag-5'>介紹</b>

    GD32 MCU移植

    gd32是一款國產(chǎn)單片機。該芯片在很多方面和STM32有異曲同工之處。資料不是很多! GD32外設(shè)方面、和STM32沒有多大區(qū)別。 只是需要注意資源的引腳分配。雖然和STM32使用方式一樣、但是也存在
    發(fā)表于 03-23 13:40

    GD32MCU介紹

    其實兆芯的MCU為了兼容ST,外設(shè)的寄存器設(shè)計與ST保持一致了。比如GD32VF103或者GD32E103系列的USBFS這個外設(shè),基本等同
    發(fā)表于 11-01 06:03

    GD32 MCU原理及固件庫開發(fā)指南》 + 初讀感悟

    GD32 MCU原理固件庫開發(fā)指南這本書內(nèi)容豐富,囊括了GD32中的所有外設(shè),書中首先介紹了如何使用MDK或IAR軟件搭建
    發(fā)表于 03-31 22:11

    GD32 MCU原理及固件庫開發(fā)指南》+讀后感

    GD32 MCU的電源管理系統(tǒng)及復(fù)位、時鐘系統(tǒng)。 第5章介紹GD32 MCU的基礎(chǔ)外設(shè),包括GP
    發(fā)表于 06-06 21:52

    兆易創(chuàng)新GD32 MCU選型手冊,適用于GD32全系列MCU

    兆易創(chuàng)新GD32MCU選型手冊,適用于GD32全系列MCUGD32MCU選型手冊,適用于GD32全系列MCU
    發(fā)表于 10-19 17:26 ?51次下載

    你了解GD32 MCU的命名規(guī)則嗎

    下面為大家介紹GD32 MCU的通用命名規(guī)則,以GD32F303ZGT6為例,其中,GD32代表GD32
    的頭像 發(fā)表于 01-13 09:38 ?4912次閱讀
    你了解<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的命名規(guī)則嗎

    GD32 MCU的選項字節(jié)是什么?

    GD32 MCU的選項字節(jié)是什么,有什么功能呢?選項字節(jié)被誤篡改如何回復(fù)?
    的頭像 發(fā)表于 01-17 09:42 ?2029次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的選項字節(jié)是什么?

    不同型號的GD32 MCU如何區(qū)分?

    大家是否碰到過以下應(yīng)用場景:同一套軟件代碼希望跑在不同型號的GD32 MCU中,但有些地方需要根據(jù)MCU型號進(jìn)行調(diào)整?或者上位機或其他MCUGD3
    的頭像 發(fā)表于 01-27 09:32 ?1603次閱讀
    不同型號的<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>如何區(qū)分?

    GD32 MCU 入門教程】一、GD32 MCU 開發(fā)環(huán)境搭建(1)使用Keil開發(fā)GD32

    GD32系列為通用型MCU,所以開發(fā)環(huán)境也可以使用通用型的IDE,目前使用較多的是KEIL、IAR、 GCC和Embedded Builder,客戶可以根據(jù)個人喜好來選擇相應(yīng)的開發(fā)環(huán)境。
    的頭像 發(fā)表于 08-08 15:01 ?3062次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門教程</b>】一、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 開發(fā)環(huán)境搭建(1)使用Keil開發(fā)<b class='flag-5'>GD32</b>

    GD32 MCU 入門教程】一、GD32 MCU 開發(fā)環(huán)境搭建(2)使用 IAR 開發(fā) GD32

    GD32系列為通用型MCU,所以開發(fā)環(huán)境也可以使用通用型的IDE,目前使用較多的是KEIL、IAR、 GCC和Embedded Builder,客戶可以根據(jù)個人喜好來選擇相應(yīng)的開發(fā)環(huán)境。
    的頭像 發(fā)表于 08-08 15:40 ?1590次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門教程</b>】一、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 開發(fā)環(huán)境搭建(2)使用 IAR 開發(fā) <b class='flag-5'>GD32</b>

    GD32 MCU 入門教程】一、GD32 MCU 開發(fā)環(huán)境搭建(3)使用 Embedded Builder 開發(fā) GD32

    GD32系列為通用型MCU,所以開發(fā)環(huán)境也可以使用通用型的IDE,目前使用較多的是KEIL、IAR、 GCC和Embedded Builder,客戶可以根據(jù)個人喜好來選擇相應(yīng)的開發(fā)環(huán)境。
    的頭像 發(fā)表于 08-08 16:03 ?2987次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門教程</b>】一、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 開發(fā)環(huán)境搭建(3)使用 Embedded Builder 開發(fā) <b class='flag-5'>GD32</b>

    GD32 MCU 入門教程】二、GD32 MCU 燒錄說明(1)ISP 燒錄

    ISP:In System Programing,在系統(tǒng)編程,通過MCU片內(nèi)的引導(dǎo)程序進(jìn)行Flash編程。 GD32片內(nèi)有一個只讀信息塊,用于存放引導(dǎo)裝載程序,引導(dǎo)程序在MCU出廠前就會提前燒錄好
    的頭像 發(fā)表于 08-08 16:20 ?2666次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門教程</b>】二、<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> 燒錄說明(1)ISP 燒錄

    GD32 MCU 入門教程GD32 MCU FPU 使用方法

    GD32 MCU FPU 使用方法
    的頭像 發(fā)表于 08-25 09:24 ?1491次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>入門教程</b>】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> FPU 使用方法

    GD32 MCU入門教程GD32 MCU GPIO 結(jié)構(gòu)與使用注意事項

    本文是專門為基于GD32 MCU開發(fā)的工程設(shè)計人員提供,主要介紹了GPIO的功能配置、內(nèi)部結(jié)構(gòu)以及在不同場景使用時的注意事項,旨在幫助GD32 MC
    的頭像 發(fā)表于 09-07 10:34 ?1864次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b><b class='flag-5'>入門教程</b>】<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> GPIO 結(jié)構(gòu)與使用注意事項
    主站蜘蛛池模板: 欧美日韩国产高清视频 | 麻豆最新网址 | 国产视频二区三区 | 爽爽av| 国产中文字幕在线视频 | www国产精品内射老熟女 | 亚洲国产精品久久人人爱潘金莲 | 少妇浪荡h肉辣文大全69 | 中国女人内谢69xxxxⅹ视频 | 国产精品嫩草久久久久 | 少妇一级淫免费播放 | 天天做天天爱天天爽综合网 | 国产精品5区 | 日韩在线视频观看免费网站 | 狠狠做六月爱婷婷综合aⅴ 狠狠做深爱婷婷综合一区 狠久久 | 欧洲美一区二区三区亚洲 | 精品国产123| 国产精品成人亚洲一区二区 | 国产精品第157页 | 国产1区2区在线观看 | 麻豆传谋在线观看免费mv | 都市激情 在线 亚洲 国产 | 久久国产a | 亚洲视频免费在线播放 | 人人做人人爱人人爽 | 欧美一级黑人 | 日韩第一色 | 国产精品国产a级 | 羞羞答答av | 日韩青青草 | 久久人人爽爽人人爽人人片av | 亚洲精品久久久口爆吞精 | 69视频免费观看 | 美女网站在线永久免费观看 | 久久久久久久亚洲国产精品87 | 欧美一级黄色大片 | 久久免费精品 | 青少年xxxxx性开放hg | 人人澡超碰碰97碰碰碰 | 天堂mv在线mv免费mv香蕉 | 香港台湾日本三级大全 | 日本美女aⅴ免费视频 | 六月丁香婷婷网 | 久久久久97| 中文字幕中文在线 | 亚洲婷婷在线观看 | 国产精品tv | 欧美日韩精品 | 日韩在线播放中文字幕 | 日本不卡免费在线 | 亚洲精品日本无v一区 | 亚洲激情av在线 | 中文字幕乱码视频32 | 欧美性性性性xxxxoooo | 50岁退休熟女露脸高潮 | 中文字幕1页 | 国产超碰人人模人人爽人人喊 | 日本免费色 | 亚洲二区在线观看 | 精品国产品香蕉在线 | 国产福利免费在线观看 | 纯爱无遮挡h肉动漫在线播放 | 日本高清xxxx | 精品久久久久久久国产性色av | 国产亚洲精品久久久久四川人 | 日本久久一级片 | 一个添下面两个吃奶把腿扒开 | 亚洲情涩| 国产精品自拍一区 | 亚洲国产精品成人女人久久 | 欧美视频1区 | 欧美成人精品第一区 | 黄色不卡 | 无码免费一区二区三区 | 手机在线看永久av片免费 | 久久久国产精华液999999 | 国产又粗又猛又爽又黄的视频免费 | 一级欧美一级日韩 | 亚洲宅男av | 色婷婷色婷婷 | 中文字幕亚洲精品日韩一区 | 99国产精品久久久久久久日本竹 | 亚洲欧美自拍偷拍 | 中国黄色录像一级片 | 中文字幕免费在线视频 | 麻豆传媒网站在线观看 | 亚洲娇小与黑人巨大交 | 久久久久99精品成人片三人毛片 | 国产日韩在线观看一区 | 国产成人精品一区二三区 | 狠狠色综合tv久久久久久 | 日日操操| 久久免费黄色网址 | 国产精品看片 | 亚洲男人的天堂在线观看 | 久久精品一级片 | 爆乳熟妇一区二区三区霸乳 | 欧美性猛交xxxⅹ乱大交小说一 | av网站在线播放 | 国语av在线 | www色日本 | 国产在线精品成人一区二区 | 日本三级香港三级三级人!妇久 | 一本一道av无码中文字幕﹣百度 | 精品国产九九九 | 国产偷国产偷亚洲精品孕妇 | 全部av―极品视觉盛宴 | 欧美一区二区三区久久精品 | 亚洲com| 亚洲精品国产精品乱码视色 | 久久精品国产亚洲精品2020 | 九九爱精品 | 日日好av| 免费无码成人av片在线在线播放 | 五月天激情国产综合婷婷婷 | 欧美人一级淫片a免费播放 欧美人与zoxxxx另类 | 日本孰妇毛茸茸xxxx | 国产五月婷婷 | 免费精品视频 | ww欧美黄色 | 中国女人黄色大片 | 久久99青青精品免费观看 | 亚洲最大的成人网 | 99久久免费精品国产男女性高好 | 国产女同疯狂作爱系列69 | 琪琪电影午夜理论片八戒八戒 | 女人高潮抽搐aaa | 欧美猛少妇色xxxxx | cosplay福利禁视频免费观看 | 大胸奶汁乳流奶水出来h | 青青草视频免费播放 | 国产艳妇av视国产精选av一区 | 国产亚洲色婷婷久久99精品 | 丝袜天堂 | 精品国产一区二区三区忘忧草 | 久草视频一区 | 熟女熟妇伦av网站 | 成人免费视频视频 | 唯美欧美亚洲 | 久久久黄色大片 | www.com久久| 国产精品久久久久久久久久免费 | 亚洲成av| 亚洲永久精品视频 | 日韩一区二区免费看 | 精品无码国产污污污免费网站 | 三级黄色片免费 | 露脸内射熟女--69xx | 欧美一区二区三区喷汁尤物 | 国产九九九九九九九a片 | 久草免费福利视频 | 国产v片 | 激情图片网站 | 久久噜噜噜精品国产亚洲综合 | 91av综合| 欧美性受xxx黑人xyx性爽 | 中国肥胖女人真人毛片 | 一区二区久久久久 | 亚洲国产精品第一区二区 | 亚洲欧美精品在线 | 精品黑人一区二区三区久久 | 好吊妞无缓冲视频观看 | 波多一区二区 | 成人国内精品久久久久影院成人国产9 | 永久精品网站 | 中文字幕爱爱 | 天天综合在线观看 | 丁香在线视频 | 午夜少妇影院 | www日本免费 | 麻豆国产一区二区三区四区 | 国产精品国产三级国产三级人妇 | 久草福利资源在线观看 | 久久久久久人妻一区二区三区 | 国产综合日韩 | 俺来也俺来啦awww官网 | 国产精品 精品国内自产拍 日韩精品一区二区三区中文 | 亚洲视频a | 久久一卡二卡 | 亚洲精品久久久久久久久久吃药 | 中文字幕有码在线观看 | 日日躁夜夜躁狠狠躁aⅴ蜜 日日躁夜夜躁狠狠躁超爽2001 | 欧美日韩国产在线播放 | 亚洲精品午夜久久久久久久久久久 | av网站在线免费播放 | 久久激情av| 激情图片网站 | 欧美日韩国产高清视频 | 亚洲国产成人无码网站大全 | 无码va在线观看 | 日韩一区二区三区视频在线观看 | 国产精品秘入口18禁麻豆免会员 | 麻豆精品91 | 久久久青草| 国产一级做a爱片在线看免 国产一级做a爰片久久毛片男 | 亚洲色图欧美在线 | 国产情侣酒店自拍 | 哪里看毛片 | 欧美性猛交xxxx乱大交极品 | 日本免费一区二区三区四区五六区 | 日本一级淫片免费放 | 扒开双腿吃奶呻吟做受视频 | 国产成人秘密网站视频999 | 邻居少妇张开腿让我爽了一夜 | 91免费视频 | 成人小视频在线 | 日产亚洲一区二区三区 | 男人的天堂在线视频 | 日韩一区二区三区在线视频 | 一个人看的免费高清www视频 | 欧美日韩一级特黄 | 久久久免费精品re6 在线精品无码字幕无码av | 精品熟人妻一区二区三区四区不卡 | 91性高湖久久久久久久久_久久99 | 国内精品久久久久久99蜜桃 | 人人干人人草 | 国产精品一区二区免费视频 | 亚洲美女又黄又爽在线观看 | 中文字幕一区二区三三 | 超碰在线免费公开 | 麻豆果冻传媒精品 | 欧美与动人物性生交 | 亚洲卡一 | 成人免费视频国产免费 | 天天射寡妇射 | 一本色道久久加勒比精品 | 国产一区二区黑人欧美xxxx | 日韩欧美激情在线 | 在线视频中文 | 亚洲男人天堂久久 | 色综合中文网 | 亚洲乱亚洲乱妇24p 国产精品丝袜高跟鞋 | 黑人大长吊大战中国人妻 | 久久久成人999亚洲区美女 | 青青草在线免费观看 | 国产精品播放 | 日本免费网站 | 国产成人久久婷婷精品流白浆 | 亚洲一区二区黄 | 免费av一级 | 精品无码av一区二区三区 | 成人在线国产 | 国产9色在线 | 日韩 | 性开放少妇xxxxⅹ视频蜜桃 | 性高湖久久久久久久久免费 | 无码人妻av一区二区三区蜜臀 | 欧美一级二级三级视频 | 久久精品9 | 一区二区国产精品精华液 | 久热国产精品 | 国产精品久久久久久亚瑟影院 | 午夜免费毛片 | 91av爱爱| 国产一区自拍视频 | 日批视频在线免费看 | 99在线成人精品视频 | 四虎免费影视 | 亚洲午夜精品久久久久久久久久久久 | 3d动漫精品啪啪一区二区 | 欧美激情国产精品免费 | 中文字幕无码日韩专区免费 | 国产精品特级毛片一区二区三区 | 91av视频在线观看 | 亚洲一级网站 | 日韩av免费网站 | 精品久久国产字幕高潮 | 国产成人免费高清激情视频 | 婷婷天堂| 国产精品99爱免费视频 | 日韩av免费一区二区 | 99久久精品国产一区二区三区 | 日本欧美色 | 女人精69xxxⅹxx猛交 | 欧洲成人午夜精品无码区久久 | 蜜乳av中文 | 不用播放器av | 国产熟女一区二区三区四区五区 | 美女高潮久久 | 久久久久91 | 国内黄色网址 | 美女视频毛片 | 日韩一区二区三区视频 | 亚洲丝袜在线观看 | 国产精品美女久久久 | 精品香蕉99久久久久网站 | 日韩精品一区二区在线观看 | 国产做a爱片久久毛片a片高清 | 精品一区二区国产 | 最新中文字幕免费视频 | 欧美美女啪啪 | 成人av时间停止系列在线 | 精品厕所偷拍各类美女tp嘘嘘 | 欧美午夜性春猛交xxxx明星 | 国产夫绿帽单男3p精品视频 | 午夜看片在线观看 | xxxx久久| 乱子轮熟睡1区 | 精品国产中文字幕 | 一区二区三区四区免费视频 | 色哟哟—国产精品 | 国产三级毛片视频 | 人与动人物xxxx毛片 | 婷婷嫩草国产精品一区二区三区 | 一级大黄毛片 | 性按摩xxxx在线观看 | 精品人人妻人人澡人人爽牛牛 | 在线天堂中文在线资源网 | bt男人天堂| 国产午夜三级一二三区 | 少妇伦子伦情品无吗 | 秋霞影院午夜伦a片欧美 | 国产真实乱偷精品视频免 | 日本三级黄色中文字幕 | 久久不见久久见免费影院 | 继室辣文h1v1 | 欧美白嫩嫩hd4kav | 特大黑人巨交性xxxx | 经典国产乱子伦精品视频 | 色偷偷av一区二区 | av中文天堂 | 国产乱子夫妻xx黑人xyx真爽 | 国产精品女同一区二区 | 日韩午夜网站 | 天堂69堂在线精品视频软件 | 宅男噜噜噜66网站在线观看 | 日韩免费无码人妻波多野 | 50一60老女人毛片 | 黄色精品在线 | 欧美成人免费全部网站 | 日本少妇高潮叫床声一区二 | 亚洲欧洲无码一区二区三区 | 国产丝袜在线观看视频 | 国产精品jizz在线观看老狼 | 成人av网页 | 国产99视频在线观看 | 国产精品国产三级国产普通话三级 | 中文在线а天堂中文在线新版 | 国产精品99久久久久的智能播放 | 国产精品午夜久久 | 九色在线播放 | 日韩一区二区视频 | 小sao货水好多真紧h无码视频 | 和漂亮岳做爰3中文字幕 | 丰满少妇被猛烈进入高清播放 | 成年人网站免费观看 | 欧美在线视频观看 | 麻豆剧场 | 亚洲欧美日韩国产成人精品影院 | 日韩激情一区二区 | 午夜精品一区二区三区在线 | 中文字幕一区二区精品 | 亚洲综合成人网 | 人妻少妇精品无码专区 | 天堂va欧美va亚洲va好看va | 日本三级中文字幕 | 国产福利第一页 | 秒拍福利视频 | 精品国产一区二区三区av 性色 | 亚洲黄色精品 | 欧美精品免费看 | 国产精品久久久久久久久久蜜臀 | 色婷婷av一区二区三区大白胸 | 一区二区三区四区在线观看视频 | 成人做爰69片免费看网站野花 | 久久久久久久久久网站 | 51av在线 | 天天色天天色天天色 | 亲嘴扒胸摸屁股激烈网站 | 寂寞少妇按摩spa高潮91 | 秋霞二区 | 北条麻妃久久精品 | 日本性插视频 | 第一色综合 | 性色av免费观看 | 国产黄a三级三级三级av在线看 | 黄片毛片在线免费观看 | 成人性视频欧美一区二区三区 | 久久久久999 | 法国伦理少妇愉情 | 一级做a爰全过程免费视频毛片 | 欧美瑟瑟 | 好男人日本社区www 噜噜色综合噜噜色噜噜色 国产精品熟妇一区二区三区四区 | 亚洲三级毛片 | 91视频插插插 | 国产黄大片 | 久草在线视频精品 | 久久精品福利视频 | 在线观看特色大片免费视频 | 国产精品国产三级国产专播精品人 | 人人草人人澡 | 国产精品一区二区香蕉 | 可以观看的av | 中文字幕人妻色偷偷久久 | 久久国产亚洲精品无码 | 四色米奇777狠狠狠me | 国自产拍偷拍精品啪啪一区二区 | 大黑人交xxxx18视频 | 国产主播一区二区 | 一本大道久久加勒比香蕉 | 人人草人人做人人爱 | 双性大乳浪受古代h男男 | 久久综合第一页 | 永久免费a级在线视频 | 谁有av网址 | 深夜福利麻豆 | 亚洲欧美中文日韩在线v日本 | 亚洲精品乱码久久久久久金桔影视 | 国产zzjjzzjj视频全免费 | 国产成人精品无码一区二区 | 欧美三级韩国三级日本三斤 | 亚洲自拍偷拍精品 | аⅴ资源中文在线天堂 | 国产福利一区在线观看 | 国产在线视频www色 日韩精品av一区二区三区 | 欧美粗暴jizz性欧美20 | 精品国产中文字幕 | 99草草国产熟女视频在线 | 久操青青 | 综合久久久久久久久 | 日韩av中文字幕在线 | 国产在线播放网站 | 免费色站 | 午夜精品久久久久久久99樱桃 | 成人宗合网 | 少妇下蹲露大唇无遮挡 | 午夜精品久久久久久久99黑人 | 久久这里只精品 | 农村一级毛片 | 开元在线观看视频国语 | 国产真实精品久久二三区 | 九九精品久久 | 中文字幕永久2021 | 日韩伦理在线视频 | 亚洲19禁大尺度做爰无遮挡 | 秋霞影院午夜伦 | 91精品国产色综合久久 | 久久成人黄色 | 日韩av免费一区二区 | jav久久亚洲欧美精品 | 农村妇女做爰偷拍视频 | 色欧美片视频在线观看 | 尤物网址在线观看 | 国产精品久久伊人 | 中文理论片 | 在线观看免费黄色小视频 | 男人的天堂一级片 | 一二三区精品视频 | 国产一级淫 | 牛牛影视一区二区三区免费看 | 日韩精品无码视频一区二区蜜桃 | 国产精品久久久久久影院8一贰佰 | 欧美色爱综合网 | 亚洲已满18点击进入在线看片 | 超级碰碰色偷偷免费视频 | 久久少妇视频 | 第九色| 亚洲图片一区 | 福利国产片 | 日韩av影院在线观看 | 中文字幕妇偷乱视频在线观 | 毛片网特黄| 成人av在线网 | 成人深夜视频在线观看 | 一本中文字幕 | 偷拍夫妻性生活 | 妩媚尤物娇喘无力呻吟在线视频 | 中出极品少妇 | 亚洲拍拍视频 | 国产人人草| 欧美激情视频在线播放 | 麻豆成人久久精品综合网址 | 一本色道综合久久欧美日韩精品 | 四虎影视永久免费 | 天天爽影院一区二区在线影院 | 中国熟妇浓毛hdsex | 国产成人午夜高潮毛片 | 成人一区二区三区在线观看 | 婷婷国产视频 | 在线播放成人 | 超碰在线进入 | 亚洲精品久久久久久久久久吃药 | 99热只有精 | 天天都色 | 求毛片网站 | 肉丝袜脚交视频一区二区 | 三级a毛片| 久久久久激情 | 特黄特色的大片观看免费视频 | 亚洲精品.www | 九九热在线视频免费观看 | 亚洲欧洲中文日韩av乱码 | 一级aaa级毛片午夜在线播放 | 91中文视频 | 91九色中文 | 久久精品综合网 | 日本少妇做爰大尺裸体网站 | 国产欧美精品一区二区三区 | 久久久www成人免费无遮挡大片 | 午夜日本永久乱码免费播放片 | 欧美性淫爽ww久久久久无 | 一级黄色大片网站 | 电影久久久久久 | 亚洲资源av无码日韩av无码 | 成人啪啪免费网站 | 大奶子网站 | 少妇xxxxxx| 我的公把我弄高潮了视频 | 中国亚州女人69内射少妇 | 久久久www成人免费无遮挡大片 | 强行挺进皇后紧窄湿润小说 | 精品视频在线一区二区 | 无码成人精品区在线观看 | 成熟女人牲交片免费观看视频 | 一区在线观看视频 | 多男一女一级淫片免费播放口 | 成人av不卡 | 国产人与禽zoz0性伦免费 | 97香蕉超级碰碰久久免费软件 | 超碰97最新 | 久久久无码人妻精品无码 | 亚洲1区2区精华液 | 亚洲欧洲成人精品香蕉网 | 久久在线精品视频 | 综合五月婷婷 | 91久久精品国产91久久 | 国产喂奶挤奶一区二区三区 | 一区免费观看 | 九九99九九精彩6 | 亚洲色图第1页 | 麻豆91在线 | 国产精品久久久久久久久久久免费看 | av在线观看地址 | 久久午夜夜伦鲁鲁一区二区 | 色拍拍在线精品视频 | 国产精品7m凸凹视频分类 | 国产视频精品久久 | 国产精品美女久久久久久久久久久 | 天天做天天爱夜夜爽 | 秋霞影院午夜丰满少妇在线视频 | 午夜成人亚洲理伦片在线观看 | 精品欧美一区二区三区久久久 | 久久精品99国产精品亚洲 | 国产老熟女伦老熟妇露脸 | 国产香蕉尹人视频在线 | 中日av乱码一区二区三区乱码 | 51区成人一码二码三码是什么 | 亚洲天堂美女 | 国产精品丝袜久久久久久不卡 | 老头吃奶性行交 | 天天干狠狠干 | av亚州| 无码一区二区三区 | 性欧美一区二区三区 | 亚洲久视频 | 日韩一级伦理片 | 国产精品无码午夜福利 | 在线播放免费人成毛片乱码 | 丝袜人妻一区二区三区网站 | 日本最新免费二区三区 | 大桥未久亚洲精品久久久强制中出 | 手机在线毛片 | 色偷偷中文字幕 | 性色av一区二区咪爱 | 成人精品视频 | 国产欧美精品区一区二区三区 | 亚洲激情av | 欧美日韩一区精品 | 日本少妇激三级做爰 | 爽交换快高h中文字幕 | 在线看无码的免费网站 | 日韩av一区二区精品不卡 | 久久人人爽人人爽人人片av软件 | 少妇高潮淫片免费观看 | 国产一区二区精品丝袜 | 日韩国产成人无码av毛片 | 四季av中文字幕一区 | 国产欧美一区二区三区在线 | 亚洲成网| 精品国产制服丝袜高跟 | 亚洲欧美自拍偷拍视频 | 成人综合在线视频 | 亚洲婷婷av| 成人在线观看h | 巨乳女教师佐山爱,夫前在线 | 国产aⅴ一区二区三区 | 国产在线国偷精品产拍免费观看 | 精品国产一区二区三区护卡密 | av天天操| 国产一区二区激情 | 国产97av| 丰满少妇高潮惨叫视频 | 中文字幕91视频 | 成人国产片女人爽到高潮 | 欧美日韩一区二区在线视频 | 动漫卡通精品一区二区三区介绍 | 亚洲色诱 | 伊人网欧美 | 亚洲天堂美女 | 少妇高潮毛片 | 中文字幕第35页 | 日本午夜精华 | 久久久久黄色 | 一区二区三区四区免费视频 | 四面虎影最新播放网址 | 色01看片网| 日韩毛片免费无码无毒视频观看 | 成人片片 | 1000部夫妻午夜免费 | 欧美特级特黄aaaaaa在线看 | 久久久久久久久久久爱 | 四虎影视免费永久在线 | 无码内射成人免费喷射 | 精品视频99 | 6080毛片 | 337p日本欧洲亚洲大胆艺术图 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品