当前位置:首页 > 单片机 > 单片机
[导读]这里以KEIL 4.60版本为例进行说明,低于此版本,可能不适合现在我所讲的内容。打开启动代码文件startup_LPC11xx.s,从第122行看起,代码如下所示:Reset_Handler PROCEXPORT Reset_Handler [WEAK]IMPORT SystemInitI

这里以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)


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭