⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcuinit.c

📁 GP32启动程序
💻 C
字号:
//MCUinit:芯片初始化-------------------------------------------------------*
//功能:系统初始化设置                                                      *
//    (1)由外部晶振f,通过本程序设置内部总线频率fBUS                        *
//    (2)确定是否禁止看门狗(COP)                                           *
//参数:无                                                                  *
//返回:无                                                                  *
//堆栈深度:2 + 1 = 3                                                       *
//说明:该程序与芯片具体型号有关                                            *
//    (1)外部晶振f = 32.768kHz,使用内部PLL(锁相环),产生内部总线时钟频率    *
//       fBUS = 2.4576MHz                                                  *
//    (2)禁止COP模块                                                       *
//-------------------------------------------------------------------------*

#include "GP32C.h"    //映像寄存器名定义

void MCUinit(void)
{
    //1.设置CONFIG2,CONFIG1
    //1.1 设置CONFIG2 
    CONFIG2 = 0b00000001;
            //        ||_SCIBDSRC   = 1内部总线时钟用作SCI时钟
            //        |__OSCSTOPENB = 0 在stop模式下禁止振荡器工作

    //1.2 设置CONFIG1
    CONFIG1 = 0b00111101;
              //||||||||_COPD    = 1 禁止COP模块
              //|||||||__STOP    = 0 禁止STOP指令
              //||||||___SSREC   = 1 32个CGMXCLK周期退出STOP模式
              //|||||____LVI5OR3 = 1 LVI工作在5V
              //||||_____LVIPWRD = 1 禁止LVI模块电源
              //|||______LVIRSTD = 1 允许LVI复位信号
              //||_______LVISTOP = 0 在stop模式下禁止LVI
              //|________COPRS   = 0 COP溢出范围使用长的时间

    //2.PLL编程
    PCTL  = 0x00;          //(1)禁止PLL:清零PLL控制寄存器PCTL
    PCTL  = 0x01;          //(2)将P,E写入PTCL,置VCO的参考频率为2
    PMSH  = 0x01;          //(3)将N写入PMSH,PMSL,置VCO的倍频因子为$12C
    PMSL  = 0x2C;
    PMRS  = 0b10000000;    //(4)将L写入PMRS,置VCO的输出频率范围系数为$80
    PRDS  = 0x01;          //(5)将R写入PRDS
    PCTL |= (1 << 5);      //(6)置PCTL.PLLON = 1,启动PLL电路
    PBWC |= (1 << 7);      //(7)PBWC自动带宽控制位 = 1,选择自动控制方式
    PCTL |= (1 << 4);      //(8)PCTL.BCS = 1,选择PLL电路为时钟源
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -