欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
STM32的RTC時鐘程序
[打印本頁]
作者:
wangxiaoji
時間:
2020-11-5 14:33
標(biāo)題:
STM32的RTC時鐘程序
#include "delay.h"
#include "led.h"
#include "rtc.h"
//實時時鐘配置
//初始化RTC時鐘,同時檢測時鐘是否工作正常
//BKP->DR1用于保存是否第一次配置的設(shè)置
//返回0:正常
//其他:錯誤代碼
u8 RTC_Init(void)
{
//檢查是不是第一次配置時鐘
u8 temp=0;
if(BKP->DR1!=0X5050)//第一次配置
{
RCC->APB1ENR|=1<<28; //使能電源時鐘
RCC->APB1ENR|=1<<27; //使能備份時鐘
PWR->CR|=1<<8; //取消備份區(qū)寫保護(hù)
RCC->BDCR|=1<<16; //備份區(qū)域軟復(fù)位
RCC->BDCR&=~(1<<16); //備份區(qū)域軟復(fù)位結(jié)束
RCC->BDCR|=1<<0; //開啟外部低速振蕩器
while((!(RCC->BDCR&0X02))&&temp<250)//等待外部時鐘就緒
{
temp++;
delay_ms(10);
};
if(temp>=250)return 1;//初始化時鐘失敗,晶振有問題
RCC->BDCR|=1<<8; //LSI作為RTC時鐘
RCC->BDCR|=1<<15;//RTC時鐘使能
while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成
while(!(RTC->CRL&(1<<3)));//等待RTC寄存器同步
RTC->CRH|=0X01; //允許秒中斷
while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成
RTC->CRL|=1<<4; //允許配置
RTC->PRLH=0X0000;
RTC->PRLL=32767; //時鐘周期設(shè)置(有待觀察,看是否跑慢了?)理論值:32767
RTC->CRL&=~(1<<4); //配置更新
while(!(RTC->CRL&(1<<5))); //等待RTC寄存器操作完成
BKP->DR1=0X5050;
}else//系統(tǒng)繼續(xù)計時
{
while(!(RTC->CRL&(1<<3)));//等待RTC寄存器同步
RTC->CRH|=0X01; //允許秒中斷
while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成
}
MY_NVIC_Init(0,0,RTC_IRQn,2);//優(yōu)先級設(shè)置
return 0; //ok
}
//RTC時鐘中斷
//每秒觸發(fā)一次
void RTC_IRQHandler(void)
{
if(RTC->CRL&0x0001)//秒鐘中斷
{
LED1=!LED1;
}
RTC->CRL&=0X0FFA; //清除溢出,秒鐘中斷標(biāo)志
while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成
}
復(fù)制代碼
keil.7z
2020-11-5 17:18 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
79.3 KB, 下載次數(shù): 21, 下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1