日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]比較F1的片子對于F4的RTC來說有很大提升,F(xiàn)4的RTC提供了日歷時鐘和兩個可編程鬧鐘中斷,一個周期性可編程喚醒標(biāo)志。這樣很方便設(shè)置系統(tǒng)時間,并不會像F1的RTC那樣要自己計算年月日時分秒。F4的RTC是一個獨(dú)立的BCD定時

比較F1的片子對于F4的RTC來說有很大提升,F(xiàn)4的RTC提供了日歷時鐘和兩個可編程鬧鐘中斷,一個周期性可編程喚醒標(biāo)志。這樣很方便設(shè)置系統(tǒng)時間,并不會像F1的RTC那樣要自己計算年月日時分秒。F4的RTC是一個獨(dú)立的BCD定時計數(shù)器,系統(tǒng)可以自動將月份天數(shù)補(bǔ)償為28、29(閏年)、30、31天。并且還可以進(jìn)行夏令時補(bǔ)償。

由此可見RTC,下面貼出代碼方便以后查看(這里特別提一下RTC_AlarmMask=RTC_AlarmMask_DateWeekDay;//屏蔽日期和星期后設(shè)置的日期和星期是無效的,RTC鬧鐘只會比較設(shè)置的時分秒,當(dāng)時分秒匹配后觸發(fā)鬧鐘中斷。同樣如果設(shè)置RTC_AlarmMask=RTC_AlarmMask_None;則為精確匹配,即鬧鐘不僅要求時分秒匹配還要匹配日期和星期,都匹配后觸發(fā)鬧鐘中斷)


//代碼來自正點(diǎn)原子


NVIC_InitTypeDefNVIC_InitStructure;

//RTC時間設(shè)置

//hour,min,sec:小時,分鐘,秒鐘

//ampm:@RTC_AM_PM_Definitions:RTC_H12_AM/RTC_H12_PM

//返回值:SUCEE(1),成功

//ERROR(0),進(jìn)入初始化模式失敗

ErrorStatusRTC_Set_Time(u8hour,u8min,u8sec,u8ampm)

{

RTC_TimeTypeDefRTC_TimeTypeInitStructure;

RTC_TimeTypeInitStructure.RTC_Hours=hour;

RTC_TimeTypeInitStructure.RTC_Minutes=min;

RTC_TimeTypeInitStructure.RTC_Seconds=sec;

RTC_TimeTypeInitStructure.RTC_H12=ampm;

returnRTC_SetTime(RTC_Format_BIN,&RTC_TimeTypeInitStructure);

}

//RTC日期設(shè)置

//year,month,date:年(0~99),月(1~12),日(0~31)

//week:星期(1~7,0,非法!)

//返回值:SUCEE(1),成功

//ERROR(0),進(jìn)入初始化模式失敗

ErrorStatusRTC_Set_Date(u8year,u8month,u8date,u8week)

{

RTC_DateTypeDefRTC_DateTypeInitStructure;

RTC_DateTypeInitStructure.RTC_Date=date;

RTC_DateTypeInitStructure.RTC_Month=month;

RTC_DateTypeInitStructure.RTC_WeekDay=week;

RTC_DateTypeInitStructure.RTC_Year=year;

returnRTC_SetDate(RTC_Format_BIN,&RTC_DateTypeInitStructure);

}

//RTC初始化

//返回值:0,初始化成功;

//1,LSE開啟失敗;

//2,進(jìn)入初始化模式失敗;

u8RTC_Init(void)

{

RTC_InitTypeDefRTC_InitStructure;

u16retry=0X1FFF;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//使能PWR時鐘

PWR_BackupAccessCmd(ENABLE);//使能后備寄存器訪問

if(RTC_ReadBackupRegister(RTC_BKP_DR0)!=0x5050)//是否第一次配置?

{

RCC_LSEConfig(RCC_LSE_ON);//LSE開啟

while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==RESET)//檢查指定的RCC標(biāo)志位設(shè)置與否,等待低速晶振就緒

{

retry++;

delay_ms(10);

}

if(retry==0)return1;//LSE開啟失敗.

RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//設(shè)置RTC時鐘(RTCCLK),選擇LSE作為RTC時鐘

RCC_RTCCLKCmd(ENABLE);//使能RTC時鐘

RTC_InitStructure.RTC_AsynchPrediv=0x7F;//RTC異步分頻系數(shù)(1~0X7F)

RTC_InitStructure.RTC_SynchPrediv=0xFF;//RTC同步分頻系數(shù)(0~7FFF)

RTC_InitStructure.RTC_HourFormat=RTC_HourFormat_24;//RTC設(shè)置為,24小時格式

RTC_Init(&RTC_InitStructure);

RTC_Set_Time(23,59,56,RTC_H12_AM);//設(shè)置時間

RTC_Set_Date(14,5,5,1);//設(shè)置日期

RTC_WriteBackupRegister(RTC_BKP_DR0,0x5050);//標(biāo)記已經(jīng)初始化過了

}

return0;

}

//設(shè)置鬧鐘時間(按星期鬧鈴,24小時制)

//week:星期幾(1~7)@refRTC_Alarm_Definitions

//hour,min,sec:小時,分鐘,秒鐘

voidRTC_Set_AlarmA(u8hour,u8min,u8sec)

{

EXTI_InitTypeDefEXTI_InitStructure;

RTC_AlarmTypeDefRTC_AlarmTypeInitStructure;

RTC_TimeTypeDefRTC_TimeTypeInitStructure;

RTC_AlarmCmd(RTC_Alarm_A,DISABLE);//關(guān)閉鬧鐘A

RTC_TimeTypeInitStructure.RTC_Hours=hour;//小時

RTC_TimeTypeInitStructure.RTC_Minutes=min;//分鐘

RTC_TimeTypeInitStructure.RTC_Seconds=sec;//秒

RTC_TimeTypeInitStructure.RTC_H12=RTC_H12_AM;

RTC_AlarmTypeInitStructure.RTC_AlarmDateWeekDay=1;//星期

RTC_AlarmTypeInitStructure.RTC_AlarmDateWeekDaySel=RTC_AlarmDateWeekDaySel_WeekDay;//按星期鬧

RTC_AlarmTypeInitStructure.RTC_AlarmMask=RTC_AlarmMask_DateWeekDay;//屏蔽日期和星期

RTC_AlarmTypeInitStructure.RTC_AlarmTime=RTC_TimeTypeInitStructure;

RTC_SetAlarm(RTC_Format_BIN,RTC_Alarm_A,&RTC_AlarmTypeInitStructure);

RTC_ClearITPendingBit(RTC_IT_ALRA);//清除RTC鬧鐘A的標(biāo)志

EXTI_ClearITPendingBit(EXTI_Line17);//清除LINE17上的中斷標(biāo)志位

RTC_ITConfig(RTC_IT_ALRA,ENABLE);//開啟鬧鐘A中斷

RTC_AlarmCmd(RTC_Alarm_A,ENABLE);//開啟鬧鐘A

EXTI_InitStructure.EXTI_Line=EXTI_Line17;//LINE17

EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//中斷事件

EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;//上升沿觸發(fā)

EXTI_InitStructure.EXTI_LineCmd=ENABLE;//使能LINE17

EXTI_Init(&EXTI_InitStructure);//配置

NVIC_InitStructure.NVIC_IRQChannel=RTC_Alarm_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02;//搶占優(yōu)先級1

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

基于ARM? Cortex?-M4的STM32F4 MCU系列采用了意法半導(dǎo)體的NVM工藝和ART Accelerator?,在高達(dá)180 MHz的工作頻率下通過閃存執(zhí)行時其處理性能達(dá)到225 DMIPS/608 Cor...

關(guān)鍵字: stm32f4 ARM

stm32f4和f1都有哪些區(qū)別?除了需要的頭文件不一樣,管腳配置什么的有區(qū)別么?

關(guān)鍵字: stm32f4 f1 比較

STM32F407VET6引腳圖及中文資料

關(guān)鍵字: stm32f4 引腳圖

  2016年2月26日,德國慕尼黑和西班牙巴塞羅那訊——贏得消費(fèi)者的信任對于智能移動設(shè)備支付解決方案至關(guān)重要。作為全球最大的安全芯片供應(yīng)商之一,英飛凌科技股份公司(FS

關(guān)鍵字: rtc 機(jī)器人 rx8010sj

博主使用的是天嵌的開發(fā)板型號IMX6Q_coreC。1.發(fā)現(xiàn)使用開發(fā)板是時間總是被設(shè)置為2028年6月18日3時41分,一開始以為是底層驅(qū)動的問題, 故去底層加打印信息調(diào)試。2.發(fā)現(xiàn)在系統(tǒng)內(nèi)hwclo

關(guān)鍵字: Linux rtc

【實(shí)驗(yàn)?zāi)康摹枯敵?路占空比不同的PWM信號是各個版本ST庫必備的例子。本實(shí)驗(yàn)的主要目的不是表現(xiàn)ST芯片PWM功能的強(qiáng)大,而是要完成輸出的精確計算?!緦?shí)驗(yàn)內(nèi)容】輸出7路PWM信號,并用示波器測量輸出。【實(shí)驗(yàn)原理】1、時

關(guān)鍵字: pwm stm32f4 tim1 信號輸出

STM32F4的隨機(jī)數(shù)發(fā)生器RNG,以環(huán)境噪聲為種子,產(chǎn)生32位隨機(jī)數(shù)供主機(jī)使用?!局饕匦浴?、產(chǎn)生32位隨機(jī)數(shù) 2、兩次轉(zhuǎn)換時間間隔40PLL48CLK 3、隨機(jī)數(shù)熵檢測以發(fā)現(xiàn)不正常位,以產(chǎn)生穩(wěn)定序列 3、可被關(guān)閉以...

關(guān)鍵字: stm32f4 隨機(jī)數(shù)發(fā)生器

  RTC-Real Time Clock是430單片機(jī)的實(shí)時時鐘模塊,可以配置成實(shí)時時鐘模式(萬年歷)或者一般目的的32位計數(shù)器模式,其中實(shí)時時鐘模式提供了年月日、時分秒,可以選擇BCD碼或者二進(jìn)制格式,并且具有可編程...

關(guān)鍵字: MSP430 rtc 單片機(jī) 實(shí)時時鐘

STM32RTC使用步驟:打開PWR時鐘和Backup區(qū)數(shù)據(jù)訪問若使用外部低速時鐘(LSE),打開LSE并等待起振選擇和打開RTC時鐘,等待時鐘同步配置時間格式,分頻系數(shù)等根據(jù)需要配置時鐘,日期,鬧鐘,喚醒,輸出,時間戳...

關(guān)鍵字: rtc stm32f3 實(shí)時時鐘

書接上文,開始折騰ADC的DMA傳輸。因?yàn)榇蠹叶荚谡fDMA,就連ST的例子里邊也是使用DMA的。 ADC采集到的數(shù)據(jù)都存儲在一個固定的寄存器中。當(dāng)常規(guī)采樣方式采樣多個通道時候,使用DMA可以較好地避免將采集到的數(shù)據(jù)...

關(guān)鍵字: adc dma stm32f4 數(shù)據(jù)傳輸 采集數(shù)據(jù)
關(guān)閉