你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32利用RTC输出秒脉冲

[复制链接]
hamiee 提问时间:2014-10-14 22:03 /
 芯片用的是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();
}
收藏 评论0 发布时间:2014-10-14 22:03

举报

0个回答

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版