[技术问答] 已解决!HK32F0主频设置72M程序跑飞的问题怎么解决?

[复制链接]
233|3
手机看帖
扫描二维码
随时随地手机跟帖
qq444023542|  楼主 | 2022-4-24 14:57 | 显示全部楼层 |阅读模式
本帖最后由 qq444023542 于 2022-4-24 20:20 编辑

问题已解决,解决方法往下看!
HK32F030C8T6主频支持72M主频,但是用STM32CUBE生成外部晶振12M主频72M时,调试时发现,刚开始还能运行,越往后就开始出现错乱,然后跑飞了,已经检查电路和晶振没有问题,将主频降到64M正常工作,不知道是哪里问题,有遇到此类问题的你们是怎么解决的? 微信截图_20220424143547.png 微信截图_20220424145817.png
微信截图_20220424145545.png
void SystemClock_Config(void)
{
  LL_FLASH_SetLatency(LL_FLASH_LATENCY_1);
  while(LL_FLASH_GetLatency() != LL_FLASH_LATENCY_1)
  {
  }
  LL_RCC_HSE_Enable();
   /* Wait till HSE is ready */
  while(LL_RCC_HSE_IsReady() != 1)
  {
  }
  LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_6);
  LL_RCC_PLL_Enable();
   /* Wait till PLL is ready */
  while(LL_RCC_PLL_IsReady() != 1)
  {
  }
  LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
  LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
  LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);

   /* Wait till System clock is ready */
  while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
  {

  }
  LL_Init1msTick(72000000);
  LL_SetSystemCoreClock(72000000);
}已经解决了,官方答复是FLASH等待周期需要设置一下,延迟加1
微信图片_20220424195215.jpg
既然知道问题那就好办了,打开系统时钟配置,右键LL_FLASH_LATENCY_1跳转
微信图片编辑_20220424200236.jpg
右键延时周期跳转
QQ截图20220424200910.png
延迟这里把红框改了,默认是0,我把它给成2就正常了
QQ截图20220424201302.png
我遇到的问题也分享给大家,避免大家走弯路!

使用特权

评论回复
SDLin| | 2022-4-24 18:25 | 显示全部楼层
可打打断点,缩小范围、确认跑到哪里引起,然后具体问题具体分析。

使用特权

评论回复
qq444023542|  楼主 | 2022-4-24 20:16 | 显示全部楼层
SDLin 发表于 2022-4-24 18:25
可打打断点,缩小范围、确认跑到哪里引起,然后具体问题具体分析。

谢谢!已经解决了!

使用特权

评论回复
cyclefly| | 2022-5-6 11:02 | 显示全部楼层
就是加个小延迟?

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则