分享

【学习分享】初探Mbed BLE Sensors Tag开发-GPIO测试

 ChinaAET 2020-10-31

Linknode 测评

非常个高兴拿到了电子技术应用提供的LINK node V11开发板.

首先我们来了解一下,LINK NODE是何方神圣.

1简介:

LinkNode 是LinkSprite出品的明星产品,同时LinkSprite也是一家非常棒的高科技公司,具备PCDUINO/开源硬件和神目视觉图像识别两大产品主线.基于LinkSprite的智能产品,我们可以快速实现自己的物联网应用,加快产品的上市.

LinkNode 就是其出品的诸多智能硬件产品中的一员;

LinkNode实际上也是一个产品系列,包含5大产品:

 

0: LinkNode家族

目前正在测评的实际上是其中的基于蓝牙BLE4.0的 Mbed BLE Sensors Tag, 为了简化,下文中,还是以LinkNode来表示.但是大家要明白其实LinkNode不止这一款;

LinkNode 是一款可穿戴设备原型开发板,支持BLE4.0,完全兼容mBed编程。板上集成了功能强大的器件,如nRF51822低功耗蓝牙SoC、LIS3DH超低功耗三轴线性加速度传感器、BMP180气压/温度传感器等等。同时,嵌入了一个兼容mBed下载的编程器,使得应用的开发和下载变得非常方便。

LinkNode由两个模块组成。一个是BLE4.0 的Sensors Tag模块,该模块兼容mbed,大大简化了基于ARM微控制器开发蓝牙可穿戴设备的过程和部署。在线的Mbed编译器提供了丰富的例程和函数,可速BLE应用的部署。常见的如GPIO,定时器,adc,串口都有例程支持,上手非常快.

 

1 : 传感器部分( BLE TAG 部分)

大家要问,mbed在线平台中,有没有Link Node 的平台选项,可以告诉大家,没有,但是.

Linnk node 是兼容mbed ,那么我们应该选择哪个platform因为主控mcu是一个Nordic出品的Soc, 大家懂得.mbed在线平台中,可以看到Link node所兼容的对象,他们拥有同样的主控,nRF51822,此外,外设也是类似的.两个用户按键,双色led,甚至是另外一部分下载器也是一样,所有的功能引脚,都是兼容的.

      图1-2  nRF51822-mKIT

另一个模块是一个编程器,可替代Jlink下载器的功能,兼容ARM的mBed下载,大大简化了下载流程。用户只需将编译生成的bin文件放到系统识别的磁盘中即可完成程序下载。相信玩过mbed平台的同学都会非常熟悉.编程器会自动将该程序下载到Sensors TAG中,无须其他操作。

 

2: 编程器(mbed兼容 )

编程器模块的主控制器是ATSAM3U2C,这个是Atmel公司推出的 M3核的微控制器,拥有128KB的Flash,最高主频96MHz。

编程器模块的拥有一个micro-USB(兼容最新的android手机数据线)口用于从电脑下载程序,一系列的GPIO口用于独立使用这个编程器,还有一个开关,一个复位按钮,由此构成了一个ATSAM3U2C的最小单片机系统。

2板上资源的使用

 下面我们逐一测试板载资源,板上资源总揽:

· NRF51822: 蓝牙低功耗&2.4GHz 无线SoC

· LIS3DH:超低功耗三轴加速度传感器

· BMP180:温度气压传感器

· mbed编程器:采用ATSAM3U2CA-AU ARM-based flash MCU

· 8 x GPIO pins

· 1 x UART port

· 1 x 双色 LED

· 2 x 用户按键

· 1 x 蜂鸣器

2-1 GPIO使用

第一个例程,从最基础的讲起,也让同学们感受一下mbed的魅力,个人觉得,mbed从语法上已经具备了arduino的简易性,易学性,但是其开发环境,也就是ide,却有是简单的不能在简单,切实的验证了未来的一种开发方式的发展方向,任何人,随时随地,可以上网,就可以编译,编程器,可能就是简化为一条USB线了.

 

             图3: 板载硬件资源的引脚图

 

4: 主芯片的原理图

下面我们进行编程,mbed的基础知识就不再多说,说白了就是提供一个整套的软件库,类似于st的固件库,MDK开发为例,只要把相应的库(支持包的文件夹),拷贝到自己的工程,然后就可以按照mbed的语法标准来编程了.mbed 具备了很多c++的面向对象的特性,但是用户编程,还是以c为主的 ,不会c++的根本不需要担心,大家可以下载我的例程来体会核心代码在main.cpp

如下:

/* 包含 mbed支持包,头文件形式 */

#include "mbed.h"

/* 定义led所在的引脚 注意与引脚影射图对应 .*/

DigitalOut LED_RED (P0_20);

DigitalOut LED_BLUE(P0_19);

/* 主函数,实现双色led的交替点亮  */

int main()

{

    while(1)

    {

        LED_RED  = 0;

        LED_BLUE = 1;

        wait(0.2);//mbed提供的延时函数

        LED_RED  = 1;

        LED_BLUE = 0;

        wait(0.2);

    }

}

大家奇怪了.怎么才能获得mbed支持包呢可以直接访问mbed.com,注册开发者账号,然后选择对应平台,再打开云端的开发环境,通过一系列图片来展示

1,选择平台

 

5: 选择platform,并且准备打开编译器

2 打开编译器,也就是编译环境,一切都在浏览器中哦,linknode插上电脑后,形成的U盘中,也有专门的网页文件可以跳转到

 图6:编译器,编辑环境

3 新建一个程序 ,

 

7 点击 New

 

8 跳出窗口,进行相关设置,

4 代码编辑

 

5 ,如果需要离线开发,可以导出工程,网站会把我们的 工程打包成MDK,IAR,等其他ide格式,然后形成压缩包供我们下载到本地,也就是形成本文最后的工程文件.

 

我们可以把这个当作模版,进行离线版,开发,也就是类似于其他arm的开发过程了. Linknode的编程器除了形成哪个用于下载的U盘 ,还有一个标准的Jlink 和一个usb串口

那么本地开发的时,我们就可以利用这个jlink来调试下载 .

 

利用这个板载的jlink功能下载还是非常给力的,

6 补充一点如果是在线编译,可以点击compile,按钮和mdk里的图标一致,编译成功后,会生成xxx.hex 可以在浏览中下载到本地,然后拖进link nodeU盘就可以了.

 

10 : 点击编译

 

11:  编译中,请稍后

 

1
<br>

12 编译完成后,选择下载,

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多