打印
[Cortex-M0技术交流]

coide中的nano130系统文件问题

[复制链接]
1711|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
youzizhile|  楼主 | 2013-3-29 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AN, IDE, ck, rc, se
COIDE系统导入的System_nano1xxx.c中的sysinit_clock文件如下:
/**
  * @brief  Enable chip clock source and select CPU clock.
  * @param  None
  * @return None
  */
void SysInit_Clock(void)
{
  __IO uint32_t delayCnt;

  /* Enable system clock source, HIRC and LIRC are default enabled */        
  UNLOCKREG();
  CLK->PWRCTL |= (CLK_PWRCTL_HXT_EN | CLK_PWRCTL_LXT_EN);           
  LOCKREG();


  /* Select HCLK from HIRC */
  CLK->CLKDIV0 &= ~CLK_CLKDIV0_HCLK_MASK; /* divider is 0 */
  UNLOCKREG();
  CLK->CLKSEL0 = (CLK->CLKSEL0 & ~CLK_CLKSEL0_HCLK_MASK) | CLK_CLKSEL0_HCLK_HIRC;         /* HCLK = 12MHz */
  LOCKREG();

  /* Update CPU Clock Frequency */
  SystemCoreClockUpdate();
}

新唐自带的bsp中的System_nano1xxx.c中的sysinit_clock文件如下:
void SysInit_Clock(void)
{
  __IO uint32_t delayCnt;

  /* Enable system clock source, HIRC and LIRC are default enabled */        
  UNLOCKREG();
  CLK->PWRCTL |= (CLK_PWRCTL_HXT_EN | CLK_PWRCTL_LXT_EN);           
  LOCKREG();

  /* Enable PLL out to 96MHz */
  CLK->PLLCTL = (CLK_PLLCTL_PLLSRC_HXT | PLL_IN_12M_OUT_96M);

  /* Waits for PLL clock stable */
  for (delayCnt=0; delayCnt<100000; delayCnt++)        
                if (CLK->CLKSTATUS & CLK_CLKSTATUS_PLL_STB)        break;

  /* Change HCLK to PLL output */                  
  if (delayCnt < 100000) {
          CLK->CLKDIV0 = (CLK->CLKDIV0 & ~CLK_CLKDIV0_HCLK_MASK) | 2; /* divider is 3 */
          UNLOCKREG();
      CLK->CLKSEL0 = (CLK->CLKSEL0 & ~CLK_CLKSEL0_HCLK_MASK) | CLK_CLKSEL0_HCLK_PLL;         /* HCLK = 32MHz */
      LOCKREG();
  }

  /* Set HCLK back to HIRC if error happens */
  if (CLK->CLKSTATUS  & CLK_CLKSTATUS_CLK_SW_FAIL)         {
          CLK->CLKDIV0 &= ~CLK_CLKDIV0_HCLK_MASK; /* divider is 0 */
          UNLOCKREG();
      CLK->CLKSEL0 = (CLK->CLKSEL0 & ~CLK_CLKSEL0_HCLK_MASK) | CLK_CLKSEL0_HCLK_HIRC;         /* HCLK = 12MHz */
      LOCKREG();
  }  

  /* Update CPU Clock Frequency */
  SystemCoreClockUpdate();
}

使用nano130开发板时一直不能正确配置时钟,最后发现了这个问题,系统coide开发者能修改下。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

50

帖子

1

粉丝