打印
[其他MCU]

LPC541xx范例初分析

[复制链接]
962|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
史迪威将军|  楼主 | 2016-1-10 18:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LPC, TE, ST, LED, ic
1、范例测试(分为Manly的范例和Xpresso的对比)
1.1 LPCxPresso
安装了LPCOpen的范例,因为没有板子测试,所以仅仅分析了程序。发现是比较丰富的,各种外设和整个结构都是非常有意思的。其中blink的实现有三种方法,非常有趣的。
1)直接访问外设,
通过SysTick按照 TICKRATE_HZ设置的频率直接访问Board_LED_Set,关键的语句如下:
    Board_LED_Set(0, false);
    SysTick_Config(SystemCoreClock / TICKRATE_HZ)
这种方法非常直观,易于理解。
2)采用双核访问LED
这个主要是通过对2个LED的轮流开断,测试双核启动后通过MailBox机制进行数据通讯的方法,其中Master进行主控,并对LED进行开断控制,Slave进行时获取LED的状态然后把该状态传回Master,但是不直接访问外设。这个例程主要是展示出最精简完整的双核启动,运行和通讯的机制,设置得非常巧妙。在readme.txt中详尽说明了这个过程。关键的语句是,
SysTick_Config(SystemCoreClock / TICKRATE_HZ);
NVIC_EnableIRQ(MAILBOX_IRQn);
访问外设的语句是,
    updateLEDStates();
3)采用CMSIS的RTOS
不是采用systick而是用实时的Task来实现,关键的语句是
static void vLEDTask2(void *pvParameters)
...
static void vUARTTask(void *pvParameters)
在任务中和第一种方法一样,直接访问外设LED,用
        Board_LED_Set(1, LedState);

1.2 采用万利板的例程是不同的。重点是定义了开发板的外设,如GPIO,LCD,Joystick,LED,TemSensor等。从开发的角度看,采用这个板子使用会更方便,因为板载输入输出的按键和显示屏,还有温度传感器可以测试信号ADC的功能,基本上把需要用到的外设都定义了。那么,因为把54100的管脚都定义了,如果开发的程序需要重新定义管脚或者就是需要特定的管脚时,难免会冲突。不过万利板把一些端口设了JP,如果有冲突可以选择断开,可以避免一些问题,还是考虑得比较充分的。这个板子的简单测试,在前面的帖子也有说明,就不啰嗦了。

1.3 相对比,采用万利板会上手快,使用方便。不过如果发到管板的就有福了,好好分析例程,会发现LPC54102是挺精致的板子,基本上把可以想象到的功能都集成了,而且例程也非常巧,非常值得借鉴,能展示54100的优势和比较先进的思想。不过可惜没有关于传感器始终在线的例程,应该这个是最大的亮点,也很好奇和值得期待。

2、KEIL开发的两点小心得。
2.1 花了不少时间才把平台调试好,时间耽误不少,主要耽误在熟悉板子上了,不过最后能调通也很满意了,因为54100确实有很多优秀的基因。不过,估计完全按时完成计划有难度了,但还是要争取完成。
2.2 在研究的过程中读了不少文档,也算是额外的收获。如果开发的时候,先把握NXP LPC系列开发库以LPCOpen的结构,能更迅速。主要是要依次阅读:芯片的用户手册,重点把握结构体系,这个更便于理解例程中的chip.h等文件;然后分析板子,以便理解board.h,这点xpresso和Manly就不同了;再次才是理解程序设计和例程。这时,这些例程就好理解了,有些很巧妙的地方就能略知一二了。最后才是开发。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

291

帖子

0

粉丝