主题中讨论的其他器件: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 将被推迟到呼叫方 }