当前位置:   article > 正文

雅特力AT32F421更改系统时钟方法步骤

at32f421

                  目录

一、用 AT32_Work_Bench 工具成生系统时钟代码,如下图:

二、在生成的代码中找到at32f421_wk_config.c文件,复制 wk_system_clock_config时钟函数到工程项目代替原来的时钟函数,我原来的工程不是AT32_Work_Bench 工具成生的,我只要这个时钟配置函数...

 三、把函数名改一下,改成void system_clock_config(void) ,如上图已经改好了的。

四、在工程项目中找到at32F421_conf.h文件,在文件中找到下面这行代码,这行代码是更改外部晶振频率的,按你的晶振频率更改,晶振频率相同就不用改了。8000000代表8M。

一、用 AT32_Work_Bench 工具成生系统时钟代码,如下图:

二、在生成的代码中找到at32f421_wk_config.c文件,复制 wk_system_clock_config时钟函数到工程项目代替原来的时钟函数,我原来的工程不是AT32_Work_Bench 工具成生的,我只要这个时钟配置函数...

  1. void system_clock_config(void) // wk_system_clock_config
  2. {
  3. /* reset crm */
  4. crm_reset();
  5. /* config flash psr register */
  6. flash_psr_set(FLASH_WAIT_CYCLE_3);
  7. /* enable lick */
  8. crm_clock_source_enable(CRM_CLOCK_SOURCE_LICK, TRUE);
  9. /* wait till lick is ready */
  10. while(crm_flag_get(CRM_LICK_STABLE_FLAG) != SET)
  11. {
  12. }
  13. /* enable hext */
  14. crm_clock_source_enable(CRM_CLOCK_SOURCE_HEXT, TRUE);
  15. /* wait till hext is ready */
  16. while(crm_hext_stable_wait() == ERROR)
  17. {
  18. }
  19. /* enable hick */
  20. crm_clock_source_enable(CRM_CLOCK_SOURCE_HICK, TRUE);
  21. /* wait till hick is ready */
  22. while(crm_flag_get(CRM_HICK_STABLE_FLAG) != SET)
  23. {
  24. }
  25. /* config pll clock resource */
  26. crm_pll_config2(CRM_PLL_SOURCE_HEXT, 120, 1, CRM_PLL_FR_8);
  27. /* enable pll */
  28. crm_clock_source_enable(CRM_CLOCK_SOURCE_PLL, TRUE);
  29. /* wait till pll is ready */
  30. while(crm_flag_get(CRM_PLL_STABLE_FLAG) != SET)
  31. {
  32. }
  33. /* config ahbclk */
  34. crm_ahb_div_set(CRM_AHB_DIV_1);
  35. /* config apb2clk */
  36. crm_apb2_div_set(CRM_APB2_DIV_1);
  37. /* config apb1clk */
  38. crm_apb1_div_set(CRM_APB1_DIV_1);
  39. /* enable auto step mode */
  40. crm_auto_step_mode_enable(TRUE);
  41. /* select pll as system clock source */
  42. crm_sysclk_switch(CRM_SCLK_PLL);
  43. /* wait till pll is used as system clock source */
  44. while(crm_sysclk_switch_status_get() != CRM_SCLK_PLL)
  45. {
  46. }
  47. /* disable auto step mode */
  48. crm_auto_step_mode_enable(FALSE);
  49. /* update system_core_clock global variable */
  50. system_core_clock_update();
  51. }

 三、把函数名改一下,改成void system_clock_config(void) ,如上图已经改好了的。

四、在工程项目中找到at32F421_conf.h文件,在文件中找到下面这行代码,这行代码是更改外部晶振频率的,按你的晶振频率更改,晶振频率相同就不用改了。8000000代表8M。

#define HEXT_VALUE         ((uint32_t)8000000) 

本文到此结束,请点赞收藏!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/755610
推荐阅读
相关标签
  

闽ICP备14008679号