物联网技术
直播中

李星童

7年用户 998经验值
私信 关注
[问答]

怎样从mbed网页开发环境导出keil工程到本地磁盘?

mbed的GPIO输出是什么?
怎样从mbed网页开发环境导出keil工程到本地磁盘?

回帖(1)

王颖

2021-7-22 15:12:35
  硬件平台: 任何支持 mbed 的开发板(本笔记以 Nucleo-F030R8为平台)。
  目的:学习 mbed 的 GPIO 输出,从 mbed 网页开发环境导出 keil 工程到本地磁盘。
  Step1-Step5创建一个应用程序的开发,我已经在学习2中有详细的记录,这里就不在细说。本篇笔记详细分析程序。所以先导出工程到本地磁盘,方便查看相关文件。
  [注:导出Keil工程并不是必须的步骤,在此只是为了方便查看mbed硬件平台相关的头文件PinNames.h。后续笔记描述中,也可能要查看该头文件]
  Step6.导出工程到本地磁盘。
  在工程名称上点击右键,选择Export Program…
  
  弹出对话框。 选择工具链为 UV5。
  
  点击 Export,会弹出一个压缩文件下载另存为的对话框。修改路径点击保存。
  
  Step 7.打开MDK工程,分析代码。
  
  打开 main.cpp 文件,可以看到其中的代码非常简洁。
  第 1 行包含头文件 mbed.h。
  第 3 行创建一个数字输出对象,名称为 myled,映射到硬件平台的 LED1 引脚。在 main 函数中,控制 LED 闪烁。
  要点1:如何创建一个数字输出对象,并用来控制 IO 输出状态。
  因为 mbed OS 是用 C++编写的,里面涉及到了对象、类等概念。如果只学过 C++,可能会看不太懂。但基本不影响应用程序开发,根据例程编写代码,知道怎么用就行。像第 3 行一样,创建好 DigitalOut对象之后,就可以使用类似 myled=1;这样的语句来控制 IO 输出了,其中的 myled 是用户随便取的,符合 C 规则即可。
  那么,第 3 行中的平台引脚都有哪些可用的值呢? 即“LED1”可用什么替换? 这可以查看平台硬件相关头文件 PinNames.h 的枚举类型 PinName。
  
  仔细查看,可以发现 LED1~LED4 是同一个引脚 PA_5。
  如果没有导出 keil 工程,也可以通过 Nucle-F030R8开发板的 mbed 主页,查看 Morpho header 的描述,了解可用的 GPIO。图中有白字/蓝底颜色的标签的就是 GPIO。
  
  
  
  在 UV5 中开发环境中, 在 main 函数中输入“myled”再输入“。”就可以看到该对象可用的方法。
  
  通过 mbed 网页开发环境,可以查看更加详细的说明,如下图:
  
  要点2:延时函数
  main 函数中调用了一个延时函数 wait()。该函数是 mbed OS 提供的三个延时函数之一。在 platform文件组中的 mbed_wait_api.h 可以查看其原型,延时的单位分别是 s、 ms 和 us。
  
  Step 8 编译 UV5 工程,下载程序
  编译完成,0错误,0警告。
  
  设置调试器为 ST-Link,使用 SW 接口,即可通过 NUCLEO-F030R8 板载的 ST-Link 下载程序到目标板。
  
  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分