1.    开箱 我参加的端午的活动申请到了LPC11U24,和大家一样以为收到的会是宣传图片上官方的板子,拆开包装看到的却是:mbed NXP LPC11U24: 不过,还是很开心,毕竟有板子就是好活动啊~ 我还从来没用过ARM的MBED,这次正好有机会全面了解下。   打开包装是这个样子: 有数据线还是很贴心的,毕竟省去了找数据线的时间。   板子很小巧,还有针脚图的卡片,看起来方便多了:  
 2.    资料 接下来到ARM MBED的官网找资料: https://os.mbed.com/platforms/mbed-LPC11U24/  
 
首先看到的就是:此板不再可用;该信息被提供作为现有用户的参考。mbed1768 mbed-LPC1768和L-TEK-FF-LPC546XX板提供了相同外形尺寸的替代品,而LPCXpresso11U68和FRDM-KL25Z则提供了NXP更强大的Cortex M0+平台,,,, 但右上角又说:要使用Mbed CLI为此板编译程序,请使用lpc11u24作为目标名称。   意味着:这个板子已经不适用最新的MBED编程支持了,但还可以用旧的~~~   下面的网页有更详细的介绍: 示例、固件、原理图都在这个页面:  
  下载原理图,可以看到板子上4个LED灯是PIO1.8~11引出来的: 关于USB应用的例程分别在: 不过这些例程都基于Mbed 2。    
3.     MBED 先了解下MBED: mbed是一个面向ARM处理器的原型开发平台,它具体包括免费的软件库(SDK),硬件参考设计(HDK)和在线工具(Web)三部分内容,各个部分的具体介绍如下: SDK:mbed设计了一个硬件抽象层,从而屏蔽了不同mcu厂商提供了微处理之间的差异,对于用户来说,他只需要和这个硬件抽象层打交道即可,也就是说,用户基于mbed开发的应用可以很方便地更换使用不同厂商的arm微处理器,从而留给用户更多的选择。 HDK:HDK是mbed提供的硬件参考设计,它是面向用户开发设计的,所以HDK提供了统一了程序上载接口,单步调试接口,串口调试接口,用户无需购买其它硬件就可以开始软件开发工作。 WEB:为了省去用户开发环境安装的麻烦,mbed提供了一个完备的基于浏览器的微处理器软件开发环境,包括代码编写,程序编译,版本控制等功能,用户只要上网就可以开发,编译结果只要下载保存到mbed开发板上即可工作,非常方便。   mbed的体系结构   mBed是ARM公司官方提供的一套用于快速开发ARM架构单片机应用原型的工具集,包括免费的软件库(Software Development Kit,SDK),硬件设计参考(Hardware Development Kit,HDK)和基于Web的在线编译环境(mBed Compiler)三部分具体内容。所以,在不同的上下文中,mBed有可能指的是mBed SDK,也有可能指的是mBed开发板。由于mBed的代码和大部分硬件设计都是以开源(Open Source,permissive Apache 2.0 licence)的方式提供的,再加上它面向的ARM系列单片机具有较高的性价比和广泛的应用基础,所以mBed在世界范围内已经吸引了大量的电子产品开发者,其产业生态链已经初级规模。   Mbed OS 是ARM 公司于2014 年开始推出并逐步完善的一款免费的开源嵌入式实时操作系统, Mbed OS 专为基于ARM Cmtex-M 内核的MCU 设计,主要面向物联网终端。   所以,MBED主打的就是一个好用,MBED OS经过了很多代的发展,目前最新的是6.17.0,   MBED OS支持的板子在这个网站: https://os.mbed.com/platforms/   一共有178个板子可以直接使用mbed os,而mbed-LPC11U24仅能使用mbed os 2的版本,,,  
  4.     用MBED编程 使用在线编程(需要注册账号),进入CODE页面: https://os.mbed.com/code/   点击start a new program,进入登录。新建工程里有mbed2 的例程:   可以看到,一切的底层配置都已经做好了,只要简单的输入即可:   插入开发板: 将生成的bin文件直接拖到U盘中,重新上电: 点亮1个LED~~~  
   想自己修改,只需找到PinNames.h文件,看到管脚的定义:   - /* mbed Microcontroller Library
 
 - * Copyright (c) 2006-2013 ARM Limited
 
 - *
 
 - * Licensed under the Apache License, Version 2.0 (the "License");
 
 - * you may not use this file except in compliance with the License.
 
 - * You may obtain a copy of the License at
 
 - *
 
 - * http://www.apache.org/licenses/LICENSE-2.0
 
 - *
 
 - * Unless required by applicable law or agreed to in writing, software
 
 - * distributed under the License is distributed on an "AS IS" BASIS,
 
 - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 - * See the License for the specific language governing permissions and
 
 - * limitations under the License.
 
 - */
 
 - #ifndef MBED_PINNAMES_H
 
 - #define MBED_PINNAMES_H
 
  
- #include "cmsis.h"
 
  
- #ifdef __cplusplus
 
 - extern "C" {
 
 - #endif
 
  
- typedef enum {
 
 - PIN_INPUT,
 
 - PIN_OUTPUT
 
 - } PinDirection;
 
  
- #define PORT_SHIFT 5
 
  
- typedef enum {
 
 - // LPC11U Pin Names
 
 - P0_0 = 0,
 
 - P0_1 = 1,
 
 - P0_2 = 2,
 
 - P0_3 = 3,
 
 - P0_4 = 4,
 
 - P0_5 = 5,
 
 - P0_6 = 6,
 
 - P0_7 = 7,
 
 - P0_8 = 8,
 
 - P0_9 = 9,
 
 - P0_10 = 10,
 
 - P0_11 = 11,
 
 - P0_12 = 12,
 
 - P0_13 = 13,
 
 - P0_14 = 14,
 
 - P0_15 = 15,
 
 - P0_16 = 16,
 
 - P0_17 = 17,
 
 - P0_18 = 18,
 
 - P0_19 = 19,
 
 - P0_20 = 20,
 
 - P0_21 = 21,
 
 - P0_22 = 22,
 
 - P0_23 = 23,
 
 - P0_24 = 24,
 
 - P0_25 = 25,
 
 - P0_26 = 26,
 
 - P0_27 = 27,
 
  
- P1_0 = 32,
 
 - P1_1 = 33,
 
 - P1_2 = 34,
 
 - P1_3 = 35,
 
 - P1_4 = 36,
 
 - P1_5 = 37,
 
 - P1_6 = 38,
 
 - P1_7 = 39,
 
 - P1_8 = 40,
 
 - P1_9 = 41,
 
 - P1_10 = 42,
 
 - P1_11 = 43,
 
 - P1_12 = 44,
 
 - P1_13 = 45,
 
 - P1_14 = 46,
 
 - P1_15 = 47,
 
 - P1_16 = 48,
 
 - P1_17 = 49,
 
 - P1_18 = 50,
 
 - P1_19 = 51,
 
 - P1_20 = 52,
 
 - P1_21 = 53,
 
 - P1_22 = 54,
 
 - P1_23 = 55,
 
 - P1_24 = 56,
 
 - P1_25 = 57,
 
 - P1_26 = 58,
 
 - P1_27 = 59,
 
 - P1_28 = 60,
 
 - P1_29 = 61,
 
  
- P1_31 = 63,
 
  
- // mbed DIP Pin Names
 
 - p5 = P0_9,
 
 - p6 = P0_8,
 
 - p7 = P1_29,
 
 - p8 = P0_2,
 
 - p9 = P1_27,
 
 - p10 = P1_26,
 
 - p11 = P1_22,
 
 - p12 = P1_21,
 
 - p13 = P1_20,
 
 - p14 = P1_23,
 
 - p15 = P0_11,
 
 - p16 = P0_12,
 
 - p17 = P0_13,
 
 - p18 = P0_14,
 
 - p19 = P0_16,
 
 - p20 = P0_22,
 
 - p21 = P0_7,
 
 - p22 = P0_17,
 
 - p23 = P1_17,
 
 - p24 = P1_18,
 
 - p25 = P1_24,
 
 - p26 = P1_25,
 
 - p27 = P0_4,
 
 - p28 = P0_5,
 
 - p29 = P1_5,
 
 - p30 = P1_2,
 
  
- p33 = P0_3,
 
 - p34 = P1_15,
 
 - p35 = P0_20,
 
 - p36 = P0_21,
 
  
- // Other mbed Pin Names
 
 - LED1 = P1_8,
 
 - LED2 = P1_9,
 
 - LED3 = P1_10,
 
 - LED4 = P1_11,
 
  
- USBTX = P0_19,
 
 - USBRX = P0_18,
 
  
- // for Arch V1.1
 
 - D0 = P0_18,
 
 - D1 = P0_19,
 
 - D2 = P0_17,
 
 - D3 = P1_17,
 
 - D4 = P1_18,
 
 - D5 = P1_24,
 
 - D6 = P1_25,
 
 - D7 = P1_5,
 
 - D8 = P1_26,
 
 - D9 = P1_27,
 
 - D10 = P0_2,
 
 - D11 = P0_9, // P1_29 for Arch V1.0
 
 - D12 = P0_8,
 
 - D13 = P1_29, // P0_9 for Arch V1.0
 
  
- D14 = P0_5,
 
 - D15 = P0_4,
 
  
- A0 = P0_11,
 
 - A1 = P0_12,
 
 - A2 = P0_13,
 
 - A3 = P0_14,
 
 - A4 = P0_16,
 
 - A5 = P0_22,
 
  
- I2C_SCL = D15,
 
 - I2C_SDA = D14,
 
  
- // Not connected
 
 - NC = (int)0xFFFFFFFF,
 
 - } PinName;
 
  
- typedef enum {
 
 - CHANNEL0 = FLEX_INT0_IRQn,
 
 - CHANNEL1 = FLEX_INT1_IRQn,
 
 - CHANNEL2 = FLEX_INT2_IRQn,
 
 - CHANNEL3 = FLEX_INT3_IRQn,
 
 - CHANNEL4 = FLEX_INT4_IRQn,
 
 - CHANNEL5 = FLEX_INT5_IRQn,
 
 - CHANNEL6 = FLEX_INT6_IRQn,
 
 - CHANNEL7 = FLEX_INT7_IRQn
 
 - } Channel;
 
  
- typedef enum {
 
 - PullUp = 2,
 
 - PullDown = 1,
 
 - PullNone = 0,
 
 - Repeater = 3,
 
 - OpenDrain = 4,
 
 - PullDefault = PullDown
 
 - } PinMode;
 
  
- #ifdef __cplusplus
 
 - }
 
 - #endif
 
  
- #endif
 
 
  复制代码 
 
    点亮全部4个LED,修改文件,就这么简单:  
 
 
 
总结:MBED OS使用起来真简单啊~~~  
        
        
        
         |