logo资料库

MBed学习指南.pdf

第1页 / 共210页
第2页 / 共210页
第3页 / 共210页
第4页 / 共210页
第5页 / 共210页
第6页 / 共210页
第7页 / 共210页
第8页 / 共210页
资料共210页,剩余部分请下载后查看
mBed 学习指南 北京师范大学 傅骞 博士 fredqian@bnu.edu.cn mBed 学习指南 北京师范大学 傅骞 fredqian@bnu.edu.cn 1. mBed 概述 1.1 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 在世界范围内已经吸引了大量的电子产品开发者,其产业生态链已经初级规模。 1.1.1 mBed SDK mBed SDK 是一个面向 C/C++的单片机软件开发框架,它建立在大量牛人开发的代码之 上,可以让我们快速地开发各种基于 ARM 的单片机应用项目。mBed SDK 已经帮我们完成了 启动代码的编写,相关运行库的封装和单片机外设的抽象,从而使我们抽出更多的时间来关 注具体的项目应用。而且,更为关键的是,mBed SDK 采用开源的 permissive Apache 2.0 licence, 从而使我们既可以把它应用于个人学习,也可以应用于商业研发,为日后的产品销售做好准 备。 下面是一个基于 mBed SDK 开发的 LED(发光二极管)闪烁程序,同样的功能,如果我 们从头开始编写那可能需要上百行代码,而这里只需要 10 行,而且代码清晰易懂,更接近 人的思维方式,这足以显示 mBed SDK 的强大: #include "mbed.h" DigitalOut myled(LED1); int main() { while(1) { myled = 1; wait(0.2); 1 / 210
mBed 学习指南 北京师范大学 傅骞 博士 fredqian@bnu.edu.cn myled = 0; wait(0.2); } } mBed SDK 当前已经支持大量的单片机,包括 NXP 公司的 LPC11UXX、LPC11XX、LPC11CXX、 LPC13XX、LPC23XX、LPC43XX、LPC81X、LPC176X、LPC408X 系列,ST 公司的 STM32F030R8、 STM32F103R8、STM32F401RE、STM32L152RE、STM32F4XX 系列,FREESCALE 公司的 MK20D5M、 MKL05Z、MKL25Z、MKL46Z 系列,NORDIC 公司的 NRF51822,而且还在不断增加中,当然, 即使 mBed SDK 不支持的单片机,用户也可以自行移植使用,所以 mBed SDK 具有很大的应 用范围。 虽然 mBed 官方推荐使用它提供的在线开发工具进行开发,这虽然省去了用户安装开发 环境需要的时间,但由于所有的代码都需要放在云端,而且只有联网的计算机才能使用,所 以国人并不习惯,这也是 mBed 迟迟没有在国内流行起来的重要原因,好在国内的 SMeshLink 公司已经开发出了基于 Eclipse 和 Gcc 的离线 IDE 环境,从而为 mBed 的国内流行扫清了障 碍,当然,如果你要使用的 MCU 不支持 GCC 编译 mBed SDK,那就需要自行添加启动文件 和链接文件后才能使用,该环境当前主要支持 GCC ARM Embedded 编译器。 1.1.2 mBed HDK 为了方便用户的快速开发,mBed 提供了 HDK 接口设计参考,其核心是通过一个实现统 一协议的接口单片机来实现用户的程序上载,代码调试和串口监控,其示意图如下: 图表 1-1 HDK 示意图 其硬件设计和固件代码都是公开的,但当前只支持有限的几个 mcu,包括 LPC812M10、 LPC1768 和 LPC11U24,再加上增加接口 MCU 后硬件的成本会增加,所以用户并没有需要使 用该方案来上载程序,我们使用的是串口上载方式,只要有串口就能上载,当然,这样就没 有调试功能了。 1.1.3 mBed Compiler 为了用户开发的方便,mBed 官方提供了网页版的开发工具,用户只要有联网的计算机 就可以开始基于 mBed 的开发,在加上 mBed 的上载方式就是复制,是所有操作系统都支持 的操作,所以,理论上来说,用户可以在所有的操作系统上进行开发,包括 windows, 2 / 210
mBed 学习指南 北京师范大学 傅骞 博士 fredqian@bnu.edu.cn IOS,Anrdoid 及 Linux 等。mBed Compiler 的主要功能如下:  代码编辑,包括语法高亮显示,快捷键,撤消/重做,剪切/复制/粘贴,标签,块/ 行注释,代码格式化等;  版本控制,包括代码提交,对比,回溯,分支和合并等功能;  代码导入,支持用户导入各种 mBed 库及应用程序用于修改开发;  代码编译,在线工具默认使用 ARM RVDS 进行编译,用户可以支持查看编译后 flash 和 ram 的使用情况,其编译后的二进制在使用上没有任何显示;  导出代码,用户可以把在线工程导出到各类离线编译工具,包括 Keil,GCC,IAR 等, 在导出文件中,mBed 库是作为二进制文件提供的,用户代码则还是源代码方式。 1.2 mBed 快速入门 1.2.1 mBed LPC1768 官方版快速入门 1.2.1.1 mBed LPC1768 开发板介绍 mBed LPC1768 是官方推出的最早的同时也是 mBed SDK 支持最好的开发板,它使用的 微处理器是 NXP LPC1768,该处理器最高可达 96M 的主频,内置 32K RAM 512K FLASH,并带 有以太网 MAC 层,USB 主机/设备, 2 路 SPI, 2 路 I2C, 3 路 UART,支持 CAN, 6 路 PWM, 6 路 ADC,大量 GPIO。mBed LPC1768 开发板采用 40Pin DIP 封装方式,大小为 54*26mm,支持 5V USB 或 4.5-9v 外部供电,内置 mBed HDK 接口系统,支持文件复制方式程序上载,其外观和 管脚引出如下: 图表 1-2 Mbed LPC1768 3 / 210
mBed 学习指南 北京师范大学 傅骞 博士 fredqian@bnu.edu.cn 图表 1-3 mbed LPC1768 端口定义 1.2.1.2 mBed LPC1768 的使用  连接 mBed LPC1768 到电脑 使用 usb 电缆连接 mBed LPC1768 和电脑后,电脑会自动把它识别成一个 U 盘,如果初 次使用的话,里面自由一个 html 文件,截图如下: 图表 1-4 mbed 模拟成 U 盘  注册并登陆到 mBed 默认情况下,mBed 使用在线开发环境,用户可以直接双击 MBED.HTM 页面到 mbed.org 4 / 210
mBed 学习指南 北京师范大学 傅骞 博士 fredqian@bnu.edu.cn 网站进行免费注册,注册成功后界面如下(我这里的帐号为 mbed):  编写 HelloWorld 图表 1-5 mbed 主页 选择点击 Compile 按钮进入 mBed 在线开发环境,首先需要设置自己使 用的硬件平台,直接点击右上角的设备选择按钮,根据向导选择 mBled LPC1768 即可,完成后界面如下: 图表 1-6 mbed 在线开发环境-1 5 / 210
mBed 学习指南 北京师范大学 傅骞 博士 fredqian@bnu.edu.cn 使用 Import 按钮导入 HelloWorld 程序后界面如下,用户可以在这里进行代码的必要修 改: 图表 1-7 mbed 在线开发环境-2  编译上载 HelloWorld 使用 Compile 按钮进行编译,成功后会自动下载编译好的 HelloWorld_LPC1768.bin 文件, 用户只需要把文件复制到 mBed 虚拟出来的 U 盘就相当于完成了程序的上载工作。需要注 意的是,用户必须按一次 mBed LPC1768 上的按钮后新程序才会被载入工作,你会发现此时 mBed LPC1768 的 LED1 会每 200m 闪烁一次。此时,你可以把代码中的 0.2 改成 1.0 后重复 上述过程,看 LED1 的变化。 1.2.1.3 mBed LPC1768 串口通讯 前面的 HelloWorld 程序我们并没有看到 HelloWorld 的出现,所以并不能称为真正的 “HelloWorld”,当然,单片机可没有显示器,我们怎样输出 HelloWorld 呢,答案就是使用串 口(Serial)通讯,在计算机上使用串口工具显示。 为了能够让 windows 识别出 mbed 虚拟出来的串口,用户需要从 mbed 官方链接 (http://mbed.org/handbook/Windows-serial-configuration)下载相应的驱动程序,当驱动程 序被成功安装后,用户就可以在设备管理器中找到 mbed 虚拟出来的串口设备: 6 / 210
mBed 学习指南 北京师范大学 傅骞 博士 fredqian@bnu.edu.cn 图表 1-8 mbed 虚拟传来的串口 接下来我们编写一个每 1 秒输出一个 hello world!的代码,并把波特率设为 115200,其 代码入下: Serial pc(USBTX, USBRX); // tx, rx int main() { pc.baud(115200); while (1) { } } pc.printf("Hello World!\n"); wait(1); 为了查看此程序的运行效果,我们可以安装一个串口工具,我们这里使用的是 accessport, 其输出结果如下: 7 / 210
mBed 学习指南 北京师范大学 傅骞 博士 fredqian@bnu.edu.cn 图表 1-9 串口调试输出 1.2.2 xBed LPC1768 快速入门 mbed 官方版的快速入门虽然使用简单,但官方板的 mbed lpc1768 开发板价格不菲, 而且功能有限,另外在线版的编译环境也不符合国人的使用习惯,所以本书主要以国产的 xbed lpc1768 开发板作为硬件基础,而开发环境则选用了本书作者自己开发的 SMeshStudio 离线编译环境,它建立在 eclipse 的基础之上,适用起来更加方便。 1.2.2.1 xBed LPC1768 开发板介绍 xBed LPC1768 是在 mbed LPC1768 的基础之上,结合国内物联网开发和应用的需求而专 么定制的高性能物联网开发节点,它在 mbed lpc1768 的基础上集成了 RJ45 以太网接口, TF 卡接口,RF231 射频芯片和 SWD 调试接口,但去掉了接口电路改用 CP2104 USB 转串口 芯片来完成串口调试和基于 FLASHMAGIC 的程序上载,整个开发板布局如下,左边的按钮 为 RESET,右边的按钮和 p2.8 管脚相连: 8 / 210
分享到:
收藏