4、TM4的系统时钟频率

文章目录

  • 一、时钟树
  • 二、操作函数:void SysCtlClockSet(uint32_t ui32Config);
    • 1、函数参数
    • 2、配置实例
  • 三、注意事项

一、时钟树

4、TM4的系统时钟频率_第1张图片

二、操作函数:void SysCtlClockSet(uint32_t ui32Config);

该函数即是设置整个单片机的工作频率。

1、函数参数

所有参数见sysctl.h文件,这里仅拿出部分参数:

//*****************************************************************************
//
// The following are values that can be passed to the SysCtlClockSet() API as
// the ui32Config parameter.
//
//*****************************************************************************
#define SYSCTL_SYSDIV_1         0x07800000  // 时钟分频值是振荡器或锁相环 /1
#define SYSCTL_SYSDIV_2         0x00C00000  // 处理器时钟是振荡器或锁相环 /2
#define SYSCTL_CFG_VCO_320      0xF0000000  // 压控振荡器频率是320 MHz
#define SYSCTL_USE_PLL          0x00000000  // 系统时钟是锁相环(PLL)时钟
#define SYSCTL_USE_OSC          0x00003800  // 系统时钟是内部低频振荡器(OSC)时钟
#define SYSCTL_XTAL_1MHZ        0x00000000  // 外部晶振是1MHz
#define SYSCTL_XTAL_16MHZ       0x00000540  // 外部晶振是16MHz
#define SYSCTL_OSC_MAIN         0x00000000  // 时钟源是主振荡器
#define SYSCTL_OSC_INT          0x00000010  // 时钟源是内部振荡器
#define SYSCTL_OSC_INT4         0x00000020  // 时钟源是内部振荡器/4
#define SYSCTL_OSC_INT30        0x00000030  // 时钟源是内部30KHz时钟
#define SYSCTL_OSC_EXT32        0x80000038  // 时钟源是外部32KHz时钟
#define SYSCTL_INT_OSC_DIS      0x00000002  // 禁能内部振荡器
#define SYSCTL_MAIN_OSC_DIS     0x00000001  // 禁能主振荡器

2、配置实例

SysCtlClockSet(SYSCTL_SYSDIV_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |  SYSCTL_XTAL_16MHZ);

SYSCTL_SYSDIV_5 表示分频值,为5分频。
SYSCTL_USE_PLL 表示系统时钟使用锁相环达到400Mhz(PLL介绍)。
SYSCTL_XTAL_16MHZ 表示外部晶振是16MHz。
SYSCTL_OSC_MAIN 表示时钟使用主振荡器。

综合起来:时钟频率等于400/2/5 = 40MHz

在时钟树的表示即:
4、TM4的系统时钟频率_第2张图片

三、注意事项

我们在使用TM4这款单片机的时候需要注意如果用了锁相环,则分频系数至少为2.5,因为400/2/2.5=80,而TM4的最高时钟频率是80MHz,超频运行容易导致系统不稳定。

你可能感兴趣的:(TM4单片机学习)