zoukankan      html  css  js  c++  java
  • lpc1768的系统时钟

     

    #define XTAL_FREQ   12000000

     

    #define VECT_TAB_OFFSET  0x0000

     

     

    void SystemInit(void)

    {

        //PLL0时钟配置

        LPC_SC->SCS       = 0X00000020;               /*使能外部主晶振,频率范围1-20M*/

        if (LPC_SC->SCS & (1 << 5))                 /* 主时钟被使能  */

        {            

            while ((LPC_SC->SCS & (1<<6)) == 0);/*   等待主晶振使能并稳定  */

        }

        LPC_SC->CCLKCFG   = 0x00000003;      /* 选择PLL到CCLK的分频     4  */

        LPC_SC->PCLKSEL0  = 0x00000000;    /*选择外设时钟从CCLK的分屏 均为0,均为4分频率,后期可改 */

        LPC_SC->PCLKSEL1  = 0x00000000;

       

        LPC_SC->CLKSRCSEL = 0x00000001;    /* 选择CCLK时钟源  主震荡器作为PLL0时钟源      */

     

        LPC_SC->PLL0CFG   = 0x00050063;    /* 选择PLL倍频     N 6 M 100 pllout 400M   */

        LPC_SC->PLL0FEED  = 0xAA;

        LPC_SC->PLL0FEED  = 0x55;

     

        LPC_SC->PLL0CON   = 0x01;             /* 使能PLL0                */

        LPC_SC->PLL0FEED  = 0xAA;

        LPC_SC->PLL0FEED  = 0x55;

        while (!(LPC_SC->PLL0STAT & (1<<26)));/* 等待PLL0锁定  */

     

        LPC_SC->PLL0CON   = 0x03;             /* 使能PLL0连接并使能           */

        LPC_SC->PLL0FEED  = 0xAA;

        LPC_SC->PLL0FEED  = 0x55;

        while (!(LPC_SC->PLL0STAT & ((1<<25) | (1<<24))));/* 等待连接并使能成功 */

       

        //PLL1时钟配置

        LPC_SC->PLL1CFG   = 0x00000023;      /*设置PLL1分频 M 3 P 2  */

        LPC_SC->PLL1FEED  = 0xAA;

        LPC_SC->PLL1FEED  = 0x55;

     

        LPC_SC->PLL1CON   = 0x01;             /* PLL1 Enable                        */

        LPC_SC->PLL1FEED  = 0xAA;

        LPC_SC->PLL1FEED  = 0x55;

        while (!(LPC_SC->PLL1STAT & (1<<10)));/* 等待PLL时钟锁定                   */

     

        LPC_SC->PLL1CON   = 0x03;             /* 使能并连接              */

        LPC_SC->PLL1FEED  = 0xAA;

        LPC_SC->PLL1FEED  = 0x55;

        while (!(LPC_SC->PLL1STAT & ((1<< 9) | (1<< 8))));/* 等待连接并使能成功 */

       

        LPC_SC->PCONP     = 0x00000008;        /* 初始化仅仅打开UART0时钟  */

        LPC_SC->CLKOUTCFG = 0x00000000;         /* 不使用CLOCK输出         */

       

        LPC_SC->FLASHCFG  = 0x0000403A;         //设置flash访问时间

       

        #if (__RAM_MODE__==1)        //根据配置

            SCB->VTOR  = 0x10000000 | VECT_TAB_OFFSET;

        #else

            SCB->VTOR  = 0x00000000 | VECT_TAB_OFFSET;     //中断向量表在flash区间,偏移为0

        #endif

    }

  • 相关阅读:
    vue_ajax-axios的使用
    laravel验证码扩展包gregwar/captcha的使用
    如何让你的网页变为黑白色
    laravle Str::random(num)函数
    laravel_日志查看-logViewer工具的使用
    如何自定义css的鼠标样式
    公鸡3块钱1只,母鸡5块钱1只,小鸡1块钱3只,用100块买100只鸡,一共多少种买法,分别是什么?
    假设某人有100000现金。 每经过一次路口需要进行一次交费。 交通规则为为当他现金大于50000时每次需要交5%如果现金小于等于50000时每次交5000。 请写一程序计算此人可以经过多少次这个路口
    本周总结
    本周总结
  • 原文地址:https://www.cnblogs.com/dengxiaojun/p/4338688.html
Copyright © 2011-2022 走看看