本文來源電子發(fā)燒友社區(qū),作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2289303_1_1.html
演示效果(開發(fā)板體驗視頻,詳見作者原文鏈接內(nèi)容)
這次有幸試用御芯微WIoTa開發(fā)套件,官方很大氣,套件里面包含一拖二開發(fā)板及配件:
大一些的一塊板子,是基站板,為WIOTA AP 評估板。
小一些的兩塊板子,是終端板,為WIOTA IOTE 評估板。
在套間里面,三塊板子均準(zhǔn)備好了天線,以及為基站板準(zhǔn)備了電源(三板通用),為終端板準(zhǔn)備了兩個18650鋰電池,另外還有一個專用燒寫器。
WIOTA AP 評估板為UM202,內(nèi)置兩個MCU,分別是UC8088和UC8288。
WIOTA IOTE 評估板為UM200,核心是UC8288。
這用燒寫器,可以為三塊板子進行燒寫,用于燒寫的同時,還可以用做調(diào)試串口,非常方便。
拿到板子后,第一件事情,就是點燈。
經(jīng)過一些基本的了解,在WIOTA AP 評估板上,有4個板載LED可以控制:
這4個LED,對應(yīng)的GPIO口,也有標(biāo)注,具體對應(yīng)關(guān)系如下:
D12:GPIO5
D13:GPIO28
D14:GPIO7
D15:GPIO6
在WIOTA IOTE 評估板上,有5個LED可以控制:
這5個LED對應(yīng)關(guān)系:
D15:GPIO2
D14:GPIO3
D2:GPIO7
D10:GPIO16
D11:GPIO17
了解以上對應(yīng)關(guān)系后,我們就可以參考御芯微官方提供的demo,來控制這些LED了。
在具體編碼之前,我們還需要了解一下,主要的接口。
首先,可以查看官方wiki中的說明,AP板基本接口標(biāo)注如下:
在以上接口中,兩個燒錄口中,缺口右邊到頭的第一個引腳,是GND。如果沒有燒錄,那么這個引腳,可以直接當(dāng)作GND,供外設(shè)使用。
IOTE板基本接口標(biāo)注如下:
IOTE板上,沒有留出單獨的GND引腳,只要焊點。參考AP板,燒錄口不用的時候,缺口右則第一個引腳,一樣可用做GND。
在我的使用過程中,僅使用燒寫器連接開發(fā)板,供電不足,需要單獨給開發(fā)板供電才好使。單獨供電,可以用官方配的鋰電池,也可以用microusb連接電腦usb口或者手機電源,也可以用官方配的電源。
然后,開始實際的開發(fā)工作了。
參考官方文檔:UCCHIP IDE 安裝 - UCchip Docs (ucthings.com),安裝好UCCHIP IDE,以及相關(guān)的驅(qū)動。
安裝驅(qū)動的時候,需要先把燒寫器連接到電腦,然后在安裝。
安裝完驅(qū)動后,在設(shè)備管理器中,可以看到如下的信息:
說明驅(qū)動安裝正確,可以進行下一步操作了。
然后,從官方編譯下載 - UCchip Docs (ucthings.com)頁面,下載UC8088例程代碼和UC8288例程代碼。
在參考該頁面的指導(dǎo),打開UC8088的gpio工程。
上面的截圖中,我自己復(fù)制了一份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的定義值,具體對應(yīng)如下:
-
0,對應(yīng)AP開發(fā)板的8088
-
1,對應(yīng)AP開發(fā)板的8288
-
2,對應(yīng)IOTE開發(fā)板的8288
-
3,對應(yīng)IOTE開發(fā)板的8288
其中,2為LED正序依次閃動,3為倒序依次閃動。因為有兩塊IOTE開發(fā)板,所以做了一點點小小的差異化處理。
以上代碼,可以通用于AP開發(fā)板和IOTE開發(fā)板,注意修改對應(yīng)的WIOTA_TYPE值即可。御芯微的封裝做的非常不錯,所以上述代碼的邏輯,非常簡單,都是最基礎(chǔ)操作了,就不詳細(xì)說明了。
編譯以上代碼,然后點擊上述IDE界面的紙飛機圖標(biāo),即可下載到開發(fā)板。如果沒有看到紙飛機圖標(biāo),點擊最右則的向下指示符,即可看到并點擊下載。
AP開發(fā)板,可以先只下載8088的程序。如果要給8288下載,請查看WIOTA AP 評估板 - UCchip Docs (ucthings.com)中關(guān)于跳線帽的說明。
IOTE開發(fā)板,下載8288的程序即可。下載完成后,對應(yīng)的LED就會自動點亮了,最終的效果,如視頻所示。在視頻中,我還接了一個紅綠燈模塊,所以效果更贊。
-
御芯微
+關(guān)注
關(guān)注
4文章
56瀏覽量
3319
發(fā)布評論請先 登錄
相關(guān)推薦
評論