stm32利用RTC输出秒脉冲
芯片用的是STM32F103VBT6,目前程序已经可以在tamper(PC13)引脚上输出校正时钟,其时钟频率为RTC时钟除以64。但调了好几天都无法输出秒脉冲,求大神搭救。/****************************************************************/
#include "stm32f10x.h"
void RTC_Configuration(void);
int main(void)
{
RTC_Configuration();
PWR_BackupAccessCmd(ENABLE); //使能或失能RTC和后备寄存器访问
BKP_TamperPinCmd(DISABLE); //该函数使能或失能管脚的侵入检测功能
BKP_RTCOutputConfig(BKP_RTCOutputSource_Second); //tamper脚输出秒脉冲实现不了,当把 //BKP_RTCOutputSource_Second改为BKP_RTCOutputSource_CalibClock时可正常输出校正脉冲,
//请问如何才能输出秒脉冲,谢谢!
}
void RTC_Configuration(void)
{
//启用PWR和BKP的时钟(from APB1)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE); //使能后备寄存器访问
BKP_DeInit(); //将BKP的全部寄存器重设为缺省值
RCC_LSEConfig(RCC_LSE_ON); //设置外部低速晶振(LSE)32.768K
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
{}
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //RTC时钟源配置成LSE(外部32.768K)
RCC_RTCCLKCmd(ENABLE);//RTC开启
RTC_WaitForSynchro(); //开启后需要等待APB1时钟与RTC时钟同步,才能读写寄存器
RTC_WaitForLastTask();
RTC_EnterConfigMode();
RTC_WaitForLastTask();
RTC_SetPrescaler(32767);
RTC_WaitForLastTask();
RTC_SetCounter(0);
RTC_WaitForLastTask();
RTC_ExitConfigMode();
RTC_WaitForLastTask();
}
页:
[1]