TKStudio示例工程LPC1220_GPIO_LED学习

第一步:打开工程

工程文件在【配套例程】LPC1200开发实验例程从处下载,解压后使用.

E:\Documents\program\Routine\example\LPC1220_GPIO\LPC1220_GPIO_LED\LPC1220_GPIO_LED.xmp

第二步:配置工程目标

  • 在"工程"菜单下拉中选择"选择工程的目标设备"
  • 在"选择目标CPU"对话框中选择"LPC1227"

image

image

第三步:目标工程配置

image

  • 右键工程名,选择"配置目标LPC1200",或者单击快速配置按钮(手型指示的按钮),弹出"目标工程配置"对话框.

  • 时钟频率为12M(12MHz内部RC振荡器可调节到1%的精度,可以选择用作系统时钟 )
  • PLL允许CPU无需使用高频晶体而工作在最大CPU速率下,时钟可以由系统振荡器或内部RC振荡器提供

(在ARM数据手册中PLL叫做倍频器,顾名思义它可以把频率翻倍,如果利用它把外部12M晶振倍频4倍的话,系统就可以工作在48MHz时钟频率下。)

  • 提供64引脚和48引脚的LQFP封装 )(学习板上是64引脚的封装,在做好的网关里是48引脚的封装.)

LPC1227FBD48/301  LQFP48   和 LPC1227FBD64/301  LQFP64

image

可以看到不同是GPIO引脚的数目48(39)引脚的同64(55)引脚的要少.Flsah同为128kb,SRAM同为8kb.

  • 引脚图(64和48)
image

image

  • 两个串口UART0和UART1.image
  • AHB(外围总线模块,Advanced Peripheral Bus)外设区的大小为  2MB,可分配多达  128个外设。APB 外设区的大小为512KB,可分配多
    达  32个外设,每种类型的每一个外设空间的大小都为16KB,从而简化了每个外设的地址译码。
  • LPC122x含有4个独立的振荡器:系统振荡器内部RC振荡器  (IRC)、实时时钟振荡器(只用于RTC)和看门狗振荡器
  • 0xFFFF FFFF,即为2^32,1Gb=2^10MB,1Mb=2^10Kb,1Kb=2^10b,也就是1Gb=2^30b,那么2^32就是2^2*2^30=4*1GB.

image

  • 主要配置"输出","C/C++","调试"三个页面:
    • "目标设备"页面可以看到选择的是"NXP LPC1227",本页默认配置,不修改.
    • 在"输出"页面中,"选择"输出文件夹,存放输出的文件.image
    • "c/c++"页面中,配置"包含路径".image
    • "调试"页面中,勾选"硬件调试","硬件调试配置".image
      • 在"调试"页面中,单击"配置",弹出"设置为CK100|LPC1111X101|NXP"对话框

image

(0)查看硬件是否连接好:

单击"搜索",弹出对话框中可以看到硬件列表:

image

(1)硬件选择: 选择"LPC1227x301"下的"CK100",然后确定.

image

(2)单击"主要配置",勾选"缓冲","单步(软件单步)","断点(软件断点)","时钟模式(自动模式)","硬件复位"等.

image

(3)在"附加设置"中勾选"SWD",注:M0内核的芯片只支持SWD仿真调试。

image

(4)"程序烧写"中,选择"扇区擦除"或者"整片擦除",勾选"编程Flash""验证Flash".

image

(5)在"硬件自检"对话框中,单击"开始",看到"硬件初始化成功"可以单击"跳过",不会儿就看到"内部SRAM检查"结果.

image

**此时可以看到当前的"设置为CK100|LPC1227x301|NXP"对话框的设置信息:(从对话框的标题也可以看到设置的为LPC1227x301)

硬件选择
(1) 厂商:  NXP
(2) 器件:  LPC1227x301
(3) 仿真器:  CK100

(4) POD类型: 

主要设置
(1) 缓冲代码.
(2) 缓冲数据.
(3) 小端.
(4) 使用硬件复位.
(5) 复位保持延时: 50毫秒.
(6) 复位恢复延时: 500毫秒.
(7) SYSRESETREQ复位.
(8) 自动停止.
(9) 系统时钟: 50.0000MHz.(小东说这个是倍频后的频率)
(10) Jtag时钟: 0.1000MHz.

(11) Jtag时钟模式: 自动时钟.

附加设置
(1) 使用SWD仿真模式.
(2) 运行中不刷新.
(2) 不捕获复位矢量.

程序烧写
(1) 擦除模式: 整片擦除.
(2) 编程Flash.
(3) 验证Flash.

初始化宏
(1) ini文件为 [C:\TKStudio\DRV\TKScope\configuration\NXP\LPC122x.ini].

image

至此,工程配置完成.

第四步:生成工程

右键工程,选择"重新生成工程"或者单击"重新生成工程"图标,生成工程,可以看到编译的结果:

---------- Build Project: LPC1220_GPIO_LED, Target: DebugInFlash ----------
Compiling ".\CM0\core_cm0.c" ...
Compiling ".\LPC12xx\system_LPC12xx.c" ...
Assembling .\LPC12xx\startup\startup_LPC12xx.s ...
Compiling ".\USER_CODE\main.c" ...
Compiling ".\Drivers\source\debug_frmwrk.c" ...
Compiling ".\Drivers\source\lpc12xx_adc.c" ...
Compiling ".\Drivers\source\lpc12xx_comp.c" ...
Compiling ".\Drivers\source\lpc12xx_crc.c" ...
Compiling ".\Drivers\source\lpc12xx_dma.c" ...
Compiling ".\Drivers\source\lpc12xx_flash.c" ...
Compiling ".\Drivers\source\lpc12xx_gpio.c" ...
Compiling ".\Drivers\source\lpc12xx_i2c.c" ...
Compiling ".\Drivers\source\lpc12xx_iocon.c" ...
Compiling ".\Drivers\source\lpc12xx_libcfg_default.c" ...
Compiling ".\Drivers\source\lpc12xx_pmu.c" ...
Compiling ".\Drivers\source\lpc12xx_rtc.c" ...
Compiling ".\Drivers\source\lpc12xx_ssp.c" ...
Compiling ".\Drivers\source\lpc12xx_sysctrl.c" ...
Compiling ".\Drivers\source\lpc12xx_timer16.c" ...
Compiling ".\Drivers\source\lpc12xx_timer32.c" ...
Compiling ".\Drivers\source\lpc12xx_uart.c" ...
Compiling ".\Drivers\source\lpc12xx_wdt.c" ...
Linking...
Program Size: Code=1000 RO-data=224 RW-data=16 ZI-data=1120 
FromELF: Creating HEX file .\DebugInFlash\LPC1200.hex...
.\DebugInFlash\LPC1200.axf - 0 Error(s),0 Warning(s).------------------------------------------------
========== 生成: 成功 1 个,失败 0 个 ==========

image

第五步:调试

  • 在"调试"菜单的下拉列表中选择"启动/停止调试"
  • 或者 快捷键"Shift+F5"
  • 或者 单击"启动/停止调试"图标

image

然后可以看到:

CK100的lED闪烁 ---->说明程序在下载.

TinyM0的LED闪烁---->说明程序确实下载进去了.(这个说法是错误的,见后面的分析)

问题是:

怎么闪烁了一会就不闪了?

2013年3月29日 15:25:10


问题:怎么闪烁了一会就不闪了?

这个现象实际是,程序根本就没有下载进去,跑的是以前的程序.

检查发现,使用"全片擦除"后程序顺利运行.

说明买回来的芯片里面下载过程序:这个程序上电运行的结果是 LPC1227芯片的LED闪烁几次后就熄灭了.

原文地址:https://www.cnblogs.com/xilifeng/p/2989003.html