Arm®Mbed™开发入门指南
立即解锁
发布时间: 2025-08-29 11:25:26 阅读量: 9 订阅数: 10 AIGC 

### Arm® Mbed™开发入门指南
#### 1. 编译、下载和运行程序
要编译程序,只需点击“Compile”按钮。若编译成功,会生成一个名为“mbed_blinky_K64F.bin”的文件,并下载到默认下载文件夹。接着,将该文件复制到FRDM - F64K USB驱动器,按下复位按钮,就能运行程序,此时应该能看到红色LED闪烁。
#### 2. 下一步计划
恭喜你成功运行了第一个程序!接下来,你可以从[这里](https://os.mbed.com/teams/FRDM‐K64F‐Code‐Share/code/)下载并运行其他现有程序,也能创建自己的程序。
#### 3. 创建自己的程序
在在线编译器中,点击“New”按钮,会弹出“Create new program”窗口。要确保选择正确的平台(FRDM - K64F)和合适的模板,“gpio example for the Freescale freedom platform”和“mbed OS Blinky LED Helloworld!”都是不错的起始模板,之后可轻松修改代码以实现所需功能。
#### 4. C/C++编程语言
Arm® Mbed™程序使用C++编程语言。C语言由Dennis Ritchie于20世纪70年代在美国“AT&T的贝尔实验室”为UNIX操作系统开发,是一种强大的低级编程语言,但缺乏许多现代特性。C++是基于C的较新语言,由Bjarne Stroustrup于20世纪80年代同样在贝尔实验室开发,具有更便捷的内存管理和面向对象编程等特性,且C语言中的所有函数在C++中也都可用。
#### 5. 函数和模块化编程
编写简单程序时,可将所有代码放在“int main()”函数内。但当程序变长变复杂,将部分可复用代码分离成函数会更好。函数也被称为子程序、过程或方法,使用函数能方便地复用代码,简化“int main()”函数,降低编程复杂度。
以下是一个简单的函数示例:
```cpp
// Example 4.2
#include "mbed.h"
DigitalOut myled(LED1);
void flashled(double t) {
myled = 1;
wait(t);
myled = 0;
wait(t);
}
int main() {
while(1) {
flashled(0.2);
}
}
```
也可将“void flashled(double t)”函数放在“int main()”函数之后,但需在“int main()”函数前声明该函数,函数的声明语句称为原型。示例如下:
```cpp
// Example 4.3
#include "mbed.h"
DigitalOut myled(LED1);
void flashled(double t);
int main() {
while(1) {
flashled(0.2);
}
}
void flashled(double t) {
myled = 1;
wait(t);
myled = 0;
wait(t);
}
```
对于大型项目,可将代码分离到不同文件,即模块化编程。例如,将闪烁LED的函数分离到“flashled.cpp”和“flashled.h”文件中。在在线编译器中,右键点击程序并选择“New File…”可添加新文件。头文件(“*.h”文件)主要用于声明,如编译器指令、变量声明和函数原型;“cpp”文件用于实现函数。以下是示例代码:
```cpp
// Example 4.4 main.cpp
#include "flashled.h"
int main() {
while(1) {
flashled(0.2);
}
}
```
```cpp
//Example 4.4 flashled.h
#ifndef FLASHLED_H
#define FLASHLED_H
#include "mbed.h"
void flashled(double t);
#endif
```
```cpp
// Example 4.4 flashled.cpp
#include "flashled.h"
DigitalOut myled(LED1);
void flashled(double t) {
myled = 1;
wait(t);
myled = 0;
wait(t);
}
```
[点击此处](https://os.mbed.com/media/uploads/robt/mbed_course_notes_‐_modular_design.pdf)获取更多关于函数和模块化编程的信息。
#### 6. 管理平台
在在线编译器中,点击右上角的平台图标,会弹出窗口,可获取FRDM - K64F开发板的完整技术细节和引脚布局,还能选择不同平台或添加更多平台。若要移除平台,需返回Arm® Mbed™开发板网页,点击页面左侧的“Remove”按钮。
#### 7. 克隆程序
若想基于现有程序创建新程序,可克隆该程序。选择要克隆的程序,右键点击弹出菜单,选择“Clone…”,然后为克隆程序选择新名称。
#### 8. 搜索和替换
在程序中搜索,可点击顶部的“Find”按钮或按“CTRL + F”键,会出现搜索和替换工具栏,可在当前文件中进行搜索和替换。右侧的“Advanced”按钮可搜索项目文件夹中的所有文件。
#### 9. 为多个平台编译程序
多数代码与其他平台(如NXP LPC1768)兼容,只需将特定平台的代码放在“#if defined() #elif defined()”结构中,示例代码如下:
```cpp
// Example 4.5
#include "mbed.h"
#if defined(TARGET_K64F)
//FRDM‐K64F code here
#elif defined(TARGET_LPC1768)
//LPC1768 code here
#elif defined(TARGET_LPC4330_M4)
//LPC4330 code here
#endif
int main() {
while(1) {
//common code here
}
}
```
特定平台的代码大多与引脚设置有关,以下是FRDM - K64F和LPC 1768板的引脚对比表:
| 类型 | FRDM - K64F | LPC 1768 |
| ---- | ---- | ---- |
| LED | LED1 (LED_RED), LED2(LED_GREEN), LED3 (LED_BLUE) | LED4 (LED_RED), LED1, LED2, LED3, LED4 |
| 数字输入/输出 | D0, D1, D2, …, D15 | P5, P6, …, P14 |
| 模拟输入 | A0, A1, A2, A3, A4, A5 | P15, P16, …, P20 |
| 模拟输出 | DAC0_OUT | P18 |
| PWM(脉冲宽度调制) | A4, A5, D3, D5, D6, …, D13 | P21, P22, …, P26 |
| I2C | D14, D15 (SCA, SCL) | P9, P10 (SCA, SCL) |
| SPI | D11, D12, D13 (MOSI, MISO, SCLK), PTD4 (CS) | P5, P6, P7 (MOSI, MISO, SCLK), P8 (CS) |
| 串口 | D1, D0 (Tx, Rx) | P9, P10 (Tx, Rx) |
编译程序时,要确保选择正确的平台。
###
0
0
复制全文
相关推荐



