【御芯微WIoTa®自组网协议开发套件试用体验】点亮三块开发板上所有的灯!!!

描述

本文来源电子发烧友社区,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2289303_1_1.html


演示效果(开发板体验视频,详见作者原文链接内容)

这次有幸试用御芯微WIoTa开发套件,官方很大气,套件里面包含一拖二开发板及配件:

御芯微

御芯微

大一些的一块板子,是基站板,为WIOTA AP 评估板。

小一些的两块板子,是终端板,为WIOTA IOTE 评估板。

在套间里面,三块板子均准备好了天线,以及为基站板准备了电源(三板通用),为终端板准备了两个18650锂电池,另外还有一个专用烧写器。

WIOTA AP 评估板为UM202,内置两个MCU,分别是UC8088和UC8288。

WIOTA IOTE 评估板为UM200,核心是UC8288。

这用烧写器,可以为三块板子进行烧写,用于烧写的同时,还可以用做调试串口,非常方便。

拿到板子后,第一件事情,就是点灯。

经过一些基本的了解,在WIOTA AP 评估板上,有4个板载LED可以控制:

御芯微

这4个LED,对应的GPIO口,也有标注,具体对应关系如下:

D12:GPIO5

D13:GPIO28

D14:GPIO7

D15:GPIO6

在WIOTA IOTE 评估板上,有5个LED可以控制:

御芯微

这5个LED对应关系:

D15:GPIO2

D14:GPIO3

D2:GPIO7

D10:GPIO16

D11:GPIO17

了解以上对应关系后,我们就可以参考御芯微官方提供的demo,来控制这些LED了。

在具体编码之前,我们还需要了解一下,主要的接口。

首先,可以查看官方wiki中的说明,AP板基本接口标注如下:

御芯微

在以上接口中,两个烧录口中,缺口右边到头的第一个引脚,是GND。如果没有烧录,那么这个引脚,可以直接当作GND,供外设使用。

IOTE板基本接口标注如下:

御芯微

IOTE板上,没有留出单独的GND引脚,只要焊点。参考AP板,烧录口不用的时候,缺口右则第一个引脚,一样可用做GND。

在我的使用过程中,仅使用烧写器连接开发板,供电不足,需要单独给开发板供电才好使。单独供电,可以用官方配的锂电池,也可以用microusb连接电脑usb口或者手机电源,也可以用官方配的电源。

然后,开始实际的开发工作了。

参考官方文档:UCCHIP IDE 安装 - UCchip Docs (ucthings.com),安装好UCCHIP IDE,以及相关的驱动。

安装驱动的时候,需要先把烧写器连接到电脑,然后在安装。

安装完驱动后,在设备管理器中,可以看到如下的信息:

御芯微

说明驱动安装正确,可以进行下一步操作了。

然后,从官方编译下载 - UCchip Docs (ucthings.com)页面,下载UC8088例程代码和UC8288例程代码。

在参考该页面的指导,打开UC8088的gpio工程。

御芯微

上面的截图中,我自己复制了一份gpio为gpio_led,所以打开的是gpio_led。

然后,将src/main.c,替换为下面的代码:

#include 
#include "int.h"
#include "gpio.h"
#include "event.h"

static void delay_ms(uint32_t nms)
{
    for(int i=0;ifor(int j=0;j<4500*3;j  )
        {
            asm("nop");
        }
    }
}

#define WIOTA_TYPE 0	// 0:AP-8088 1:AP-8288 2:IOTE-8288-1 3:IOTE-8288-2
#if WIOTA_TYPE == 0
GPIO_PIN leds[] = {GPIO_PIN_3, GPIO_PIN_4, GPIO_PIN_5, GPIO_PIN_28, GPIO_PIN_6, GPIO_PIN_7}; //WIOTA IOTE 评估板 8088
#endif
#if WIOTA_TYPE == 1
GPIO_PIN leds[] = {GPIO_PIN_7, GPIO_PIN_15, GPIO_PIN_17}; //WIOTA AP 评估板 8288
#endif

#if WIOTA_TYPE == 2
GPIO_PIN leds[] = {GPIO_PIN_2, GPIO_PIN_3, GPIO_PIN_7, GPIO_PIN_16, GPIO_PIN_17}; //WIOTA IOTE 评估板 8288
#endif
#if WIOTA_TYPE == 3
GPIO_PIN leds[] = {GPIO_PIN_2, GPIO_PIN_3, GPIO_PIN_7, GPIO_PIN_16, GPIO_PIN_17}; //WIOTA IOTE 评估板 8288
#endif
	
int main(int argc, char **argv)
{
	//open sim ldo power
	//	uint32_t * ptr = (uint32_t *)(0x1a10422c);
	//	*ptr |= 1<<23;
	//
	//	*ptr |= 1<<22;
	//	*ptr |= 1<<21;
	//	*ptr &= ~(1<<21);

	int len = sizeof(leds)/sizeof(leds[0]);

	for(GPIO_PIN i=0;iint led = 0;
    while(1) {
		printf("LED %d 
", led);
		for(GPIO_PIN i=0;i#if WIOTA_TYPE == 3
		gpio_set_pin_value(UC_GPIO, leds[(len-1)-led%len], GPIO_VALUE_HIGH);
		#else
		gpio_set_pin_value(UC_GPIO, leds[led%len], GPIO_VALUE_HIGH);
		#endif

		delay_ms(0.1*(led%len/2 1)*1000);		
		led  ;
	}
	return 0;
}
;i>;i>;i>

要测试LED功能,唯一需要修改的就是WIOTA_TYPE的定义值,具体对应如下:

  • 0,对应AP开发板的8088

  • 1,对应AP开发板的8288

  • 2,对应IOTE开发板的8288

  • 3,对应IOTE开发板的8288

    其中,2为LED正序依次闪动,3为倒序依次闪动。因为有两块IOTE开发板,所以做了一点点小小的差异化处理。
    以上代码,可以通用于AP开发板和IOTE开发板,注意修改对应的WIOTA_TYPE值即可。

    御芯微的封装做的非常不错,所以上述代码的逻辑,非常简单,都是最基础操作了,就不详细说明了。

    编译以上代码,然后点击上述IDE界面的纸飞机图标,即可下载到开发板。如果没有看到纸飞机图标,点击最右则的向下指示符,即可看到并点击下载。
    御芯微

    AP开发板,可以先只下载8088的程序。如果要给8288下载,请查看 WIOTA AP 评估板 - UCchip Docs (ucthings.com) 中关于跳线帽的说明。
    IOTE开发板,下载8288的程序即可。

    下载完成后,对应的LED就会自动点亮了,最终的效果,如视频所示。在视频中,我还接了一个红绿灯模块,所以效果更赞。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分