如何在keil中快速配置lpc1114主频

  • 学习5181次

这里以KEIL 4.60版本为例进行说明,低于此版本,可能不适合现在我所讲的内容。

打开启动代码文件startup_LPC11xx.s,从第122行看起,代码如下所示:

Reset_Handler? PROC

EXPORT? Reset_Handler???????????? [WEAK]

IMPORT? SystemInit

IMPORT? __main

LDR???? R0, =SystemInit

BLX???? R0

LDR ????R0, =__main

BX????? R0

ENDP

这是单片机复位以后执行的源头,可以看到,程序并不是先从main函数开始执行,而是先执行SystemInit函数,之后才进入main函数。SystemInit函数即时钟配置函数,此函数已经在KEIL自带的system_LPC11xx.c文件中定义好,打开system_LPC11xx.c文件,翻到此文件的最后面,就可以看见这个函数了。

打开system_LPC11xx.c文件后,在KEIL编辑器状态栏的上面,可以看到两个sheet,第一个是Text Editor,第二个是Configuration Wizard。如下图所示:

主频配置

用鼠标左键单击Configuration Wizard,在页标签的下面,找到Expand All按钮,单击此按钮,出现如下图所示画面:

展开

从上图中可以看到,在我们面前出现了6个常用时钟配置寄存器,它们分别是:

系统振荡器配置寄存器(SYSOSCCTRL);

看门狗振荡器配置寄存器(WDTOSCCTRL);

系统PLL控制寄存器(SYSPLLCTRL);

系统PLL时钟源选择寄存器(SYSPLLCLKSEL);

主时钟源选择寄存器(MAINCLKSEL);

系统AHB分频寄存器(SYSAHBCLKDIV)。

例如:我们选择IRC作为PLL时钟输入,并用PLL倍频四倍后作为主时钟。

配置步骤为,首先,点击SYSPLLCLKSEL右边的项目,点击下拉菜单,从中选择IRC Oscillator,即把IRC振荡器时钟作为PLL的时钟输入。然后,在SYSPLLCTRL右边的项目中,选择MSEL = 3,PSEL = 2。最后,在MAINCLKSEL的项目中,选择System PLL Clock Out,即把PLL倍频后的时钟作为主时钟源。

(有的童鞋可能对这里的MSEL值有疑惑,那么详见SYSPLLCTRL寄存器定义,M = MSEL + 1)

发表评论