主题中讨论的其他器件:TM4C123
我正在尝试将 Launchpad 配置为以80MHz 的频率运行。
我没有为此使用 TivaWare。
我将按照 231 5.3页的初始化和配置进行详细介绍
但我没有成功、因为时钟显然没有以80MHz 的频率运行。
这是我在 main 函数中做的第一件事。
也许有人可以发现错误! Thx。
void clockSetup(){
//运行模式时钟配置(RCC)复位值0x078E3AD1
//获取值
unsigned int RCC_I = sysctl->RCC;
unsigned int RCC2_i = sysctl->RCC2;
unsigned int MOSCCTL = sysctl->MOSCCTL;
SYSCTl->RCC = 0x078E3AD1U;//重置寄存器
unsigned int RCC_r = sysctl->RCC;//应读取0x078E3AD1U
SYSCTL->RCC &=~(0x01U <<11);// PLL 旁路(0x0使用 PLL)
//主振荡器禁用(MOSCDIS)
// 0启用(默认值),1禁用
SYSCTl->RCC |=(0x01U <<22);//启用系统时钟分频器
SYSCTl->RCC |=(0x15U <<6);//设置 XTAL 值16MHz
unsigned int RCC_c = sysctl->RCC;
//运行模式时钟配置2 (RCC2)复位值0x07C06810
SYSCTl->RCC2 = 0x07C06810;//复位寄存器
unsigned int RCC2_r = sysctl->RCC;
sysctl->RCC2 |=(0x01U <<31);//使用 RCC2
SYSCTL->RCC2 |=(0x01U <<30);//将 PLL 分频为400 MHz
sysctl->RCC2 &=~(0x01U <<13);//掉电 PLL (覆盖 RCC)
sysctl->RCC2 &=~(0x01U <<11);// PLL 旁路(覆盖 RCC)
SYSCTl->RCC2 &&μ~(0x07U << 4);//振荡器源(覆盖 RCC)选择主振荡器(MOSC)
SYSCTl->RCC2 |=(0x02U <<23);//系统时钟分频值 |
SYSCTL->RCC2 &=~(0x01U <<22);// SYSDIV2的附加 LSB | 80MHz
unsigned int RCC2_c = sysctl->RCC2;
unsigned int RCC_f = sysctl->RCC;
unsigned int RCC2_f = sysctl->RCC2;
//等待16ms 将被推迟到呼叫方
}