[AT32F413] 解决ATF32F413CBT6使用ST库函数外部时钟启动失败问题

[复制链接]
 楼主| Undshing 发表于 2023-2-28 11:07 | 显示全部楼层 |阅读模式
    查看ST库函数代码发现:
  1. /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/   
  2.   /* Enable HSE */   
  3.   RCC->CR |= ((uint32_t)RCC_CR_HSEON);

  4.   /* Wait till HSE is ready and if Time out is reached exit */
  5.   do
  6.   {
  7.     HSEStatus = RCC->CR & RCC_CR_HSERDY;
  8.     StartUpCounter++;  
  9.   } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

  10.   if ((RCC->CR & RCC_CR_HSERDY) != RESET)
  11.   {
  12.     HSEStatus = (uint32_t)0x01;
  13.   }
  14.   else
  15.   {
  16.     HSEStatus = (uint32_t)0x00;
  17.   }  
   程序在使能外部晶振后,会有一个等待时间,等待外部晶振稳定后继续执行频率设置指令。但这个等待时间不是无限长的,有一个超时时间计数 HSE_STARTUP_TIMEOUT,超时之后就会默认外部晶振开启失败。
    解决方法:库函数中HSE_STARTUP_TIMEOUT 的值定义为0x0500,通过将其增为0x0800后,系统时钟可设置成功。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

1797

帖子

1

粉丝
快速回复 返回顶部 返回列表