|
本帖最后由 never 于 2016-12-30 13:35 编辑
本次是将gokit2及Gokit3(STM32版)测试所需资料整理到一起,并对硬件开发做一个简单的介绍。希望能给大家对机智云的这两款硬件开发套件做一个全面的认识,希望可以帮到大家,和大家共同进步,教程中有错误的地方希望指正出来大家共同进步。好了先上图:
首先是Gokit2的:
Gokit2底板原理图:https://club.gizwits.com/forum.php?mod=attachment&aid=ODM2M3w3ZjJjNTQ5MDRmZjQ4ZGZkODkyN2VkZWQwZDM0MGI0NXwxNzQ0MTg1NDU4&request=yes&_f=.pdf
Gokit2功能版原理图:https://club.gizwits.com/forum.php?mod=attachment&aid=ODM2NHw0Njc3NTJiNzc4NTMyMGYyY2M0Yjg3MTQ4YTQ5N2UwYXwxNzQ0MTg1NDU4&request=yes&_f=.pdf
这里需要对Gotkit2做一个说明,Gokit2采用的wifi+MCU的方式wifi只做数据通信左右,因此没有必要关心wifi内的代码。若是需要采用Soc方案请使用Gokit3。
好了有了这两个文档就可以对gokit的硬件资源有有一个整体的认识,如果对stm32熟悉的话便可从官网下载中心找到底板源码,这里我将最近的代码整理到本贴中方便大家使用。https://club.gizwits.com/forum.php?mod=attachment&aid=ODM2Nnw5ODZhNjE5YjEyM2JkNDM0MjRjYTkxZDBhYjA5M2ViNHwxNzQ0MTg1NDU4&request=yes&_f=.zip
这里需要注意的是如果需要测试宠物屋代码的需要添加宠物屋的密钥:6f3074fe43894547a4f1314bd7e3ae0b
Gokit3语音版:Gokit3底板原理图与Gokit2的底板是一样的这里就不添加了
Gokit3的功能板是Gokit3硬件更新的一大亮点:https://club.gizwits.com/forum.php?mod=attachment&aid=ODM2N3wxNTU4MjI4MWUyMmM1OWI3Y2U1NDcwZTAyM2EyMzIxOXwxNzQ0MTg1NDU4&request=yes&_f=.pdf
Gokit3语音管理软件:https://club.gizwits.com/forum.php?mod=attachment&aid=ODM2OHxhMDQ0OWJlODU0MWZhNGJlZDZlY2EzZjBmMmNiZjg4NHwxNzQ0MTg1NDU4&request=yes&_f=.rar
开发文档:Gokit3开发文档
Gokit3Soc版:
开发Gokit3Soc版的时候就不需要Gokit3底板了。
这里将开发资料整理到此:https://club.gizwits.com/forum.php?mod=attachment&aid=ODM2OXwyMWM3NGQ5MmE2MGMxZGE0NGE1ZWJmNGY3ZDhmNGQ0YXwxNzQ0MTg1NDU4&request=yes&_f=.zip
这里我说下我的个人感受Gokit Soc板是目前最完美的,或许大家对esp8266不是很熟悉,但是我们可以看下demo的入口函数:
- /**
- * @brief 程序入口函数
- * 在该函数中完成用户相关的初始化
- * @param none
- * @return none
- */
- void ICACHE_FLASH_ATTR user_init(void)
- {
- uint32 system_free_size = 0;
- struct devAttrs attrs;
- wifi_station_set_auto_connect(1);
- wifi_set_sleep_type(NONE_SLEEP_T);//set none sleep mode
- espconn_tcp_set_max_con(10);
- uart_init_3(9600,115200);
- UART_SetPrintPort(1);
- os_printf( "---------------SDK version:%s--------------\n", system_get_sdk_version());
- os_printf( "system_get_free_heap_size=%d\n",system_get_free_heap_size());
- struct rst_info *rtc_info = system_get_rst_info();
- os_printf( "reset reason: %x\n", rtc_info->reason);
- if (rtc_info->reason == REASON_WDT_RST ||
- rtc_info->reason == REASON_EXCEPTION_RST ||
- rtc_info->reason == REASON_SOFT_WDT_RST)
- {
- if (rtc_info->reason == REASON_EXCEPTION_RST)
- {
- os_printf("Fatal exception (%d):\n", rtc_info->exccause);
- }
- os_printf( "epc1=0x%08x, epc2=0x%08x, epc3=0x%08x, excvaddr=0x%08x, depc=0x%08x\n",
- rtc_info->epc1, rtc_info->epc2, rtc_info->epc3, rtc_info->excvaddr, rtc_info->depc);
- }
- if (system_upgrade_userbin_check() == UPGRADE_FW_BIN1)
- {
- os_printf( "---UPGRADE_FW_BIN1---\n");
- }
- else if (system_upgrade_userbin_check() == UPGRADE_FW_BIN2)
- {
- os_printf( "---UPGRADE_FW_BIN2---\n");
- }
- //user init
- //rgb led init
- rgbGpioInit();
- rgbLedInit();
- //key init
- keyInit();
-
- //motor init
- motorInit();
- motorControl(MOTOR_SPEED_DEFAULT);
-
- //temperature and humidity init
- dh11Init();
- //Infrared init
- irInit();
-
- //gizwits InitSIG_UPGRADE_DATA
- gizwitsInit();
- system_os_task(gizwitsUserTask, USER_TASK_PRIO_0, userTaskQueue, userQueueLen);
- //user timer
- os_timer_disarm(&userTimer);
- os_timer_setfn(&userTimer, (os_timer_func_t *)userTimerFunc, NULL);
- os_timer_arm(&userTimer, USER_TIME_MS, 1);
- os_printf("--- system_free_size = %d ---\n", system_get_free_heap_size());
- }
复制代码 可以看到代码并不是很难,后续会更新关于Gokit Soc开发教程
|
|