锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

32位单片机LPC11C14学习

时间:2024-05-26 23:07:11

功能:(设置GPIO口方向),参数(端口号,位,输入或输出(0入1出)) GPIOSetDir( PORT0, 1, 0 );

GPIOSetValue() 一个是设置端口方向,一个是设置输出的值,直接调用就可以了。

如果在片内RAM当中运行代码并且应用程序需要调用中断,那么必须将中断向量重新映射到Flash地址0x0。这样做是因为所有的异常向量都位于地址0x0及以上。通过将寄存器MEMMAP(位于系统控制模块当中)配置为用户RAM模式来实现这一点。

#ifdef __DEBUG_RAM

LPC_SC->SYSMEMREMAP = 0x1;

#else

#ifdef __DEBUG_FL

LPC_SYSCON->SYSMEMREMAP = 0x2;

#endif

#endif


有一个显著的特点,就是都可以把时钟频率倍频到很高,具体到多高,每个系列的微控制器都有一个指标,我们现在要学的Cortex-M0内核处理器 LPC1114最高能到50MHz,当然,其它的ARM内核微处理器可以倍频到更高,现在好多手机都采用了ARM内核处理器,比如卖的很火的诺基亚 5233就是采用了ARM11处理器,ARM11的处理器的主频为433MHz,比Cortex-M0的50MHz高多了吧!所以Cortex-M0处理器被ARM称为入门级的内核!
要实现对系统时钟的配置,时钟配置图是必须要看懂的!因为它比文字更具有参考价值,看上这张图配置时钟,绝对不会出现漏洞!(我建议你把这张图打印出来贴到你的墙上,我就是这么做的,你看着办吧!)接下来,我将一步一步引领你彻底看懂这张“时钟配置图”。

注意了,要开始讲图了!(这张图就是数据手册说的时钟产生单元:CGU(Clock generationunit))
LPC1114 内部含有3个时钟:系统振荡器振荡器,看门狗振荡器。系统振荡器就是需要配合外部晶振工作的振荡器(这是任何一款单片机都有的);C振荡器就是内部RC振荡器,就是我在上面“总览LPC1114”中提到的那个LPC1114一上电就默认选择的12MHz时钟振荡器,它的精度没有配合外部晶振的系统振荡器高;看门狗振荡器就是给看门狗提供的时钟振荡器!这么说大家明白了吧,在接下来的叙述里面,一提到系统振荡器就是指利用外部晶振的时钟振荡器,IRC振荡器就是指LPC1114的内部时钟振荡器,可不要搞混了哦!
我们先从图的中心点看起,找到“主时钟”三个字,看“主时钟”的左面,有四条线到了“主时钟”的框上,这四条线就是“主时钟”的来源,它们分别是:IRC振荡器,看门狗振荡器,倍频之前的时钟(sys_pllclkin)和倍频之后的时钟(sys_pllclkout)。也就是主时钟可以在这四个时钟源当中选择一个做为主时钟!通过操纵(人家专业名词不叫“操纵”,叫“访问”)“主时钟源选择寄存器(MAINCLKSEL)”实现。这个32位的主时钟源选择寄存器MAINCLKSEL只用到了两位(谁让两位就可以表示四种状态呢!),剩下的全都是保留位,如下:
位(bit) 符号 值 描述 复位值
1:0 SEL 00 选择IRC振荡器 00
01 选择输入到PLL之前的时钟
10 选择看门狗振荡器
11 选择PLL之后的时钟
31:2 - - 保留 0
看复位值,系统默认情况下就是选择IRC振荡器作为系统的主时钟的。我们为了让LPC1114发挥出它最大的性能,就喜欢选择PLL(PLL就是倍频的意思)后的时钟,在程序中这样写:
SYSCON->MAINCLKSEL = 0x00000003;//主时钟源选择PLL后的时钟

接下来看图上,找到“系统PLL”方框,看它左面倒梯形方框的左面,有三条线,这三条线就是可以做为倍频时钟源的时钟源。这三个时钟源分别是:IRC振荡器,系统振荡器,看门狗振荡器。这不就是LPC1114的三个时钟振荡器么,原来它们都可以做为PLL的时钟源!该选择谁捏?这就要操纵“系统倍频时钟源选择寄存器(SYLLCLKSEL)”了。这个32位的寄存器也是只用到了两位:
(两位就可以表示四种状态了,三个状态当然是绰绰有余!)
位(bit) 符号 值 描述 复位值
1:0 SEL 00 选择IRC振荡器 00

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章