亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版
標題:
STM32 RTC時鐘源程序
[打印本頁]
作者:
Wang嘉欣
時間:
2020-6-16 13:31
標題:
STM32 RTC時鐘源程序
電路原理圖如下:
1592285159(1).png
(16.5 KB, 下載次數: 23)
下載附件
2020-6-16 13:27 上傳
單片機源程序如下:
#include "delay.h"
#include "led.h"
#include "rtc.h"
//實時時鐘配置
//初始化RTC時鐘,同時檢測時鐘是否工作正常
//BKP->DR1用于保存是否第一次配置的設置
//返回0:正常
//其他:錯誤代碼
u8 RTC_Init(void)
{
//檢查是不是第一次配置時鐘
u8 temp=0;
if(BKP->DR1!=0X5050)//第一次配置
{
RCC->APB1ENR|=1<<28; //使能電源時鐘
RCC->APB1ENR|=1<<27; //使能備份時鐘
PWR->CR|=1<<8; //取消備份區寫保護
RCC->BDCR|=1<<16; //備份區域軟復位
RCC->BDCR&=~(1<<16); //備份區域軟復位結束
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; //時鐘周期設置(有待觀察,看是否跑慢了?)理論值:32767
RTC->CRL&=~(1<<4); //配置更新
while(!(RTC->CRL&(1<<5))); //等待RTC寄存器操作完成
BKP->DR1=0X5050;
}else//系統繼續計時
{
while(!(RTC->CRL&(1<<3)));//等待RTC寄存器同步
RTC->CRH|=0X01; //允許秒中斷
while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成
}
MY_NVIC_Init(0,0,RTC_IRQn,2);//優先級設置
return 0; //ok
}
//RTC時鐘中斷
//每秒觸發一次
void RTC_IRQHandler(void)
{
if(RTC->CRL&0x0001)//秒鐘中斷
{
LED1=!LED1;
}
RTC->CRL&=0X0FFA; //清除溢出,秒鐘中斷標志
while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成
}
復制代碼
所有程序51hei提供下載:
RTC時鐘.7z
(192.04 KB, 下載次數: 17)
2020-6-16 15:08 上傳
點擊文件名下載附件
作者:
admin
時間:
2020-6-16 15:09
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1