这里以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)
关键字:keil 快速配置 lpc1114 主频
引用地址:
如何在keil中快速配置lpc1114主频
推荐阅读最新更新时间:2024-03-16 15:24
Keil环境,在调试STM32中犯过的错
1、貌似的变量冲突 程序中有一个全局变量赋值gUI = 0x0A;可是发现gUI并没有获得这个值,而是另一个位于RAM区首地址0x2000 0000的全局变量获得了这个值,感觉奇怪,堆栈溢出? 后来检查发现,在程序的前一个子函数中有语句: char ID ; sprintf(ID, %02X%02X%02X%02X , Card_Id , Card_Id , Card_Id , Card_Id ); OLED_8x16StrP(0,2,(u8 *)ID); //液晶显示ID号 上面代码中ID 缺少了字符串结束符,而OLED_8x16StrP()函数是以字符串结束符,也就是某个字节为0值判断显示结束的,于是不知道这个函数
[单片机]
Keil C51对C语言的关键词扩展之八: far
far的出现,是Keil 编译器为了支持新出现的8051家族增强型MCU,这些增强型MCU可能拥有大于64KB的存储器。使用far可访问扩展的RAM,使用const far可访问扩展的ROM。 NXP 51MX架构51单片机提供通过通用指针访问多达8MB的code和xdata存储空间。Dallas 390架构的51单片机通过24位的DPTR寄存器结合传统MOVX 、MOVC指令来访问扩展的RAM和ROM。
[单片机]
keil中更改代码字体,颜色等
修改后的配置文件在该路径下:C:\Program Files (x86)\Keil_v5\UV4\global.prop 若修改后系统默认字体找不到Courier New,则可以通过修改配置文件让其重新显示出来 operator,block,brackets:括号,逗号,分号等 Identifier:英文代码正文 方案一: font.monospace.cpp=Courier New style.cpp.32=font:Courier New,size:11,fore:#000000,back:#CCE8CF style.cpp.4=font:Courier New,size:11,fore:#FF00FF,back:#
[单片机]
proteus与keil的完美结合
在没有单片机开发板的情况下,一般来讲要学好单片机确实的一件困难的事,本人也是过来者. 后来发现有一个很好用的软件,叫proteus,拿来试了几下子,嘿嘿,还真好用,不信你看看! 用他来实现单片机驱动LCD1602的仿真实验: proteus这个软件的用法在这里就不详细介绍了,想毕很多人都知道去下载. 开始前先要准备好仿真文件,这是用keil产生的HEX文件(HEX是什么?我倒) 现在我们用到的是LCD1602.HEX(这个是我自己写的程序产生的HEX文件,我把他一起发上来吧) 运行Proteus 6 Professional(ISIS6 Professional) 是不是感觉和protel差不
[单片机]
STM32 在keil 下进行 atoi 函数功能测试
STM32 在keil 下进行 atoi 函数功能测试: 源码: void test_str2num(void) { int a; printf( rnrn0x1234 = %d, ,atoi( 0x1234 )); printf( rn0x1234 = %d, ,atoi( 0x1234 )); printf( rn1234 = %d, ,atoi( 1234 )); printf( rn0 = %d, ,atoi( 0 )); printf( rn01234 = %d, ,atoi( 01234 )); printf( rn0.1234 = %d, ,atoi( 0.1234 )); pri
[单片机]
keil错误ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
在利用Keil C51编程时,发现程序逻辑上没有错误,但在连接时却出现了错误,如下: *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DA TA SEGMENT: ?DT?GMNS_3V4 LENGTH: 0014H *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: RECEIVE_TIMER SEGMENT: ?DT?GMNS_3V4 *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: DUAL_REC_BUF S
[单片机]
单片机keil编译软件怎么防止代码拼写错误
1. 认真听讲,掌握语法规则,例如: (1)汇编语句每行语句结束一般不加符号 (2)C51的关键词大部分都是以有意义的英文单词命名的,例如for ,不能拼写成fro 等等 2. 先记忆,再打字。 3. 中英文键盘切换,记得英文输入模式下打字。 4. 字体改大,便于发现错误,Edit- Configuration- Colors &Fonts- 8051:Edit Asm/C Files - Text- 点击Font右边按钮,修改Size为24 5. 自查和互查,检查的时候要一个字母,一个空格,一个符号逐个检查。 6. 根据Build Output窗口提示的错误行数进行排查。例如: eightledmain.asm(1
[单片机]
VxWorks下UDP协议栈效率的研究与改进
1 使用VxWorks标准UDP协议栈存在的问题 在VxWorks标准的IP协议实现的前提下,其UDP协议的实现存在于IP层。在VxWorks中有一个网络任务(亦即进程),用于完成以太网包的收发处理及与各种网络协议的接口,其名为tNetTask,优先级低于一般的系统任务而高于应用程序任务。系统的上层网络协议,如Telnet、FTP等,在服务器端有一个相应的任务,处理网络任务转交过来的数据报。 应用程序想要实现UDP数据报的收发,就要使用操作系统提供的socket编程接口,主要包括创建socket,绑定socket和源IP与端口号,发送UDP数据报和接收socket中收到的内容。在VxWorks中有4个函数与之相对应,分别
[网络通信]