“LPC824 Core:项目移植笔记”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“{| style="width: 1000px;" |- | *用LPC来实现Cube小车,开发笔记:[http://wiki.microduino.cn/index.php/LPC%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0-Cube%E5%B0%8F...”)
 
第1行: 第1行:
{| style="width: 1000px;"
+
==概述==
|-
+
* LPC824M201JHI33是NXP的一款MCU,它基于mbed平台开发。本文档是在移植Cube小车、点阵屏幕、平衡车、WIFI气象站的基础上实现。除了平衡车,其他3个均可工作在LPC824上了。平衡车,已有立起来的趋势,但还未真正立起来。
|
 
*用LPC来实现Cube小车,开发笔记:[http://wiki.microduino.cn/index.php/LPC%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0-Cube%E5%B0%8F%E8%BD%A6 LPC开发笔记-Cube小车]
 
*用LPC来实现点阵屏幕,开发笔记:[http://wiki.microduino.cn/index.php/LPC%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0-%E7%82%B9%E9%98%B5%E5%B1%8F%E5%B9%95 LPC开发笔记-点阵屏幕]
 
*用LPC来实现WIFI气象站,开发笔记:[http://wiki.microduino.cn/index.php/LPC开发笔记-WIFI气象站 LPC开发笔记-WIFI气象站]
 
*用LPC来实现平衡车,开发笔记:[http://wiki.microduino.cn/index.php/LPC%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0-%E5%B9%B3%E8%A1%A1%E8%BD%A6 LPC开发笔记-平衡车]
 
  
 +
==步骤==
 +
*1、进入[https://developer.mbed.org mbed 主页],注册。
 +
*2、注册完毕,回到[https://developer.mbed.org 主页],点击右上角的“Compiler”即可进入在线编译模式。
 +
*3、程序编辑完毕后,点击“Compile”即可在编译、链接成功后自动下载bin文件。
 +
*4、下载JFlash:https://www.segger.com/jflash.html
 +
*5、用JFlash把bin下载到LPC824中运行。
  
|}
+
==代码==
 +
*Cube小车:
 +
https://developer.mbed.org/users/lixianyu/code/CubeFine/
 +
*点阵屏幕:
 +
https://developer.mbed.org/users/lixianyu/code/LED_DZ/
 +
*平衡车:
 +
https://developer.mbed.org/users/lixianyu/code/BalanceCar/
 +
*WIFI气象站:
 +
https://developer.mbed.org/users/lixianyu/code/Io_moon/
 +
 
 +
==从Arduino移植代码到mbed上的注意事项==
 +
*关于mbed的学习指南这里不再赘述,网上已有很多学习资料。或者可以看一下这里的'''[[File:mBed学习指南.pdf]]'''
 +
 
 +
'''注意事项:
 +
* Arduino的程序入口是在.ino文件中的setup、loop函数,mbed的程序入口是在main.cpp文件里的main函数。在main函数中用while(true)实现Arduino中的loop函数功能。
 +
* Arduino中的pinMode需改为mbed的AnalogIn、AnalogOut、DigitalOut、DigitalIn等类的实例
 +
* Arduino中用analogWrite来实现PWM的输出,在mbed中需要替换为PwmOut类的实例。在mbed中,PWM的输出频率、宽度,都是可以通过API动态设置的
 +
* Arduino中用Serial 类实现串口输出,在mbed中需使用Serial类的实例替代。
 +
* Arduino中的millis、micros函数,在mbed中需使用Timer类的实例替代。另外,在mbed中,Timeout、Ticker两个类,作用是分别实现定时单次操作和定时重复操作。
 +
* Arduino中的pgm_read_byte函数是从flash中读取数据,在mbed中直接操作uint8_t指针即可,不再需要单独的函数从flash读数据。
 +
* Arduino中用Wire进行I2C的操作,在mbed上需要改为I2C类的实例。
 +
* AM2321的取温度间隔得大于2s,否则,i2c会不工作了。
 +
* SimpleTimer有个bug,会导致快速调用两次定时函数。例如,setInterval(4000, sendCH4),每4秒执行一次sendCH4函数,但实际运行时发现sendCH4的执行间隔会小于4秒钟。
 +
'''有问题可给我发邮件:11165820@qq.com,一起讨论mbed的世界
 +
 
 +
* 关于管脚定义,可先clone mbed源码到本地:https://github.com/mbedmicro/mbed.git
 +
**在目录hal\targets\hal\TARGET_NXP\TARGET_LPC82X\TARGET_LPC824下面的PinNames.h文件里有对LPC824的所有管脚的定义。
 +
 
 +
 
 +
*mbed已经实现了对LPC824这个TARGET的实现。'''
 +
 
 +
 
 +
*mbed已经对如下厂商的MCU提供支持:
 +
[[File:tupian1.jpg]]
 +
 
 +
*进入TARGET_NXP目录,可看到mbed已实现了对如下具体MCU的实现:
 +
[[File:tupian2.jpg]]
 +
 
 +
*未列出的MCU,目前还不能使用mbed平台。

2016年7月7日 (四) 13:05的版本

概述

  • LPC824M201JHI33是NXP的一款MCU,它基于mbed平台开发。本文档是在移植Cube小车、点阵屏幕、平衡车、WIFI气象站的基础上实现。除了平衡车,其他3个均可工作在LPC824上了。平衡车,已有立起来的趋势,但还未真正立起来。

步骤

  • 1、进入mbed 主页,注册。
  • 2、注册完毕,回到主页,点击右上角的“Compiler”即可进入在线编译模式。
  • 3、程序编辑完毕后,点击“Compile”即可在编译、链接成功后自动下载bin文件。
  • 4、下载JFlash:https://www.segger.com/jflash.html
  • 5、用JFlash把bin下载到LPC824中运行。

代码

  • Cube小车:

https://developer.mbed.org/users/lixianyu/code/CubeFine/

  • 点阵屏幕:

https://developer.mbed.org/users/lixianyu/code/LED_DZ/

  • 平衡车:

https://developer.mbed.org/users/lixianyu/code/BalanceCar/

  • WIFI气象站:

https://developer.mbed.org/users/lixianyu/code/Io_moon/

从Arduino移植代码到mbed上的注意事项

  • 关于mbed的学习指南这里不再赘述,网上已有很多学习资料。或者可以看一下这里的文件:MBed学习指南.pdf

注意事项:

  • Arduino的程序入口是在.ino文件中的setup、loop函数,mbed的程序入口是在main.cpp文件里的main函数。在main函数中用while(true)实现Arduino中的loop函数功能。
  • Arduino中的pinMode需改为mbed的AnalogIn、AnalogOut、DigitalOut、DigitalIn等类的实例
  • Arduino中用analogWrite来实现PWM的输出,在mbed中需要替换为PwmOut类的实例。在mbed中,PWM的输出频率、宽度,都是可以通过API动态设置的
  • Arduino中用Serial 类实现串口输出,在mbed中需使用Serial类的实例替代。
  • Arduino中的millis、micros函数,在mbed中需使用Timer类的实例替代。另外,在mbed中,Timeout、Ticker两个类,作用是分别实现定时单次操作和定时重复操作。
  • Arduino中的pgm_read_byte函数是从flash中读取数据,在mbed中直接操作uint8_t指针即可,不再需要单独的函数从flash读数据。
  • Arduino中用Wire进行I2C的操作,在mbed上需要改为I2C类的实例。
  • AM2321的取温度间隔得大于2s,否则,i2c会不工作了。
  • SimpleTimer有个bug,会导致快速调用两次定时函数。例如,setInterval(4000, sendCH4),每4秒执行一次sendCH4函数,但实际运行时发现sendCH4的执行间隔会小于4秒钟。

有问题可给我发邮件:11165820@qq.com,一起讨论mbed的世界

  • 关于管脚定义,可先clone mbed源码到本地:https://github.com/mbedmicro/mbed.git
    • 在目录hal\targets\hal\TARGET_NXP\TARGET_LPC82X\TARGET_LPC824下面的PinNames.h文件里有对LPC824的所有管脚的定义。


  • mbed已经实现了对LPC824这个TARGET的实现。


  • mbed已经对如下厂商的MCU提供支持:

文件:Tupian1.jpg

  • 进入TARGET_NXP目录,可看到mbed已实现了对如下具体MCU的实现:

文件:Tupian2.jpg

  • 未列出的MCU,目前还不能使用mbed平台。