国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

從5方面描述STM32F407+ESP8266連接機(jī)智云過程

發(fā)布者:Joyful222Life最新更新時間:2024-06-04 來源: elecfans關(guān)鍵字:STM32F407  ESP8266  機(jī)智云 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

一、硬件組成如下圖所示:

硬件全家福:

STM32F407ZGT6+ESP8266


二、下載通用APP DEMO:

1.在應(yīng)用商店,搜索“機(jī)智云”APP。

通用APP Demo 又稱“機(jī)智云”APP

2.安裝、注冊、登陸后如下圖所示:

三、調(diào)試過程詳解:

創(chuàng)建數(shù)據(jù)點

生成MCU工程

下載MCU工程并根據(jù)開發(fā)板原理圖修改工程,修改的地方如程序中紅色加注釋的部分

main.c 中加入紅色標(biāo)出的GPIO初始化代碼

static void MX_GPIO_Init(void)

{

GPIO_InitTypeDef GPIO_InitStruct;

/* GPIO Ports Clock Enable */

__HAL_RCC_GPIOE_CLK_ENABLE();

__HAL_RCC_GPIOH_CLK_ENABLE();

__HAL_RCC_GPIOA_CLK_ENABLE();

__HAL_RCC_GPIOF_CLK_ENABLE(); //GPIOF CLK Enable:Used to Ctrol LED

/*Configure GPIO pins : KEY2_Pin KEY1_Pin */

GPIO_InitStruct.Pin = KEY2_Pin|KEY1_Pin;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

GPIO_InitStruct.Pull = GPIO_PULLUP;

HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

/*Configure GPIO pin Output Level */

HAL_GPIO_WritePin(GPIOE, LED1_Pin|LED0_Pin, GPIO_PIN_SET);

/*Configure GPIO pins : LED1_Pin LED0_Pin */

GPIO_InitStruct.Pin = LED1_Pin|LED0_Pin;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);

}

main.h頭文件中增加以下內(nèi)容

/* USER CODE BEGIN Private defines */

#define LED1_Pin GPIO_PIN_9

#define LED1_GPIO_Port GPIOF

#define LED0_Pin GPIO_PIN_10

#define LED0_GPIO_Port GPIOF

/* USER CODE END Private defines */

gizwits_product.c中需要用戶添設(shè)備上電狀態(tài)代碼如下圖所示

void userInit(void)

{

memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));

/** Warning !!! DataPoint Variables Init , Must Within The Data Range **/

currentDataPoint.valueValve = 0;

currentDataPoint.valueLED0 = 1;

currentDataPoint.valueLED1 = 1;

currentDataPoint.valueState = 1;

currentDataPoint.valueValue = 5;

}

gizwits_product.c中需要用戶添加的代碼如下圖所示

int8_t gizwitsEventProcess(eventInfo_t *info, uint8_t *gizdata, uint32_t len)

{

uint8_t i = 0;

dataPoint_t *dataPointPtr = (dataPoint_t *)gizdata;

moduleStatusInfo_t *wifiData = (moduleStatusInfo_t *)gizdata;

protocolTime_t *ptime = (protocolTime_t *)gizdata;

#if MODULE_TYPE

gprsInfo_t *gprsInfoData = (gprsInfo_t *)gizdata;

#else

moduleInfo_t *ptModuleInfo = (moduleInfo_t *)gizdata;

#endif

if((NULL == info) || (NULL == gizdata))

{

return -1;

}

for(i=0; inum; i++)

{

switch(info->event[i])

{

case EVENT_Valve:

currentDataPoint.valueValve = dataPointPtr->valueValve;

GIZWITS_LOG('Evt: EVENT_Valve %d ', currentDataPoint.valueValve);

if(0x01 == currentDataPoint.valueValve)

{

//user handle

HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin); //led1閃爍 ,沒有閥,用燈替代

HAL_Delay(500);

HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin); //led0閃爍 沒有閥,用燈替代

HAL_Delay(500);

}

else

{

//user handle

HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET); //熄滅led1

HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_SET); //熄滅led0

}

break;

case EVENT_LED0:

currentDataPoint.valueLED0 = dataPointPtr->valueLED0;

GIZWITS_LOG('Evt: EVENT_LED0 %d ', currentDataPoint.valueLED0);

if(0x01 == currentDataPoint.valueLED0)

{

//user handle

HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_RESET); //點亮led0

}

else

{

//user handle

HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_SET); //熄滅led0

}

break;

case EVENT_LED1:

currentDataPoint.valueLED1 = dataPointPtr->valueLED1;

GIZWITS_LOG('Evt: EVENT_LED1 %d ', currentDataPoint.valueLED1);

if(0x01 == currentDataPoint.valueLED1)

{

//user handle

HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET); //點亮led1

}

else

{

//user handle

HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_SET); //滅掉led1

}

break;

case WIFI_SOFTAP:

break;

case WIFI_AIRLINK:

break;

case WIFI_STATION:

break;

case WIFI_CON_ROUTER:

break;

case WIFI_DISCON_ROUTER:

break;

case WIFI_CON_M2M:

break;

case WIFI_DISCON_M2M:

break;

case WIFI_RSSI:

GIZWITS_LOG('RSSI %d ', wifiData->rssi);

break;

case TRANSPARENT_DATA:

GIZWITS_LOG('TRANSPARENT_DATA ');

//user handle , Fetch data from [data] , size is [len]

break;

case WIFI_NTP:

GIZWITS_LOG('WIFI_NTP : [%d-%d-%d %02d:%02d:%02d][%d] ',ptime->year,ptime->month,ptime->day,ptime->hour,ptime->minute,ptime->second,ptime->ntp);

break;

case MODULE_INFO:

GIZWITS_LOG('MODULE INFO ... ');

#if MODULE_TYPE

GIZWITS_LOG('GPRS MODULE ... ');

//Format By gprsInfo_t

#else

GIZWITS_LOG('WIF MODULE ... ');

//Format By moduleInfo_t

GIZWITS_LOG('moduleType : [%d] ',ptModuleInfo->moduleType);

#endif

break;

default:

break;

}

}

return 0;

}

4.程序燒錄:使用FlyMCU進(jìn)行程序燒寫, 5.打開APP操控體驗6.打開Xcom查看調(diào)試信息

四、注意事項:

1.正確找出開發(fā)板的UART2接口:本開發(fā)板中對應(yīng)關(guān)系如下:

UART2_TX:PA2,

UART2_RX:PA3,

2.保證與ESP8266模塊的管腳接線正確:

V3.3(接開發(fā)板3.3V);

GND(接開發(fā)板GND);

TX (接開發(fā)板的PA3管腳);

RX (接開發(fā)板的PA2管腳);

3.由于本次使用的ESP8266是原來機(jī)智云二代產(chǎn)品上的,可能正常聯(lián)上機(jī)智云,故沒有給ESP8266燒寫固件


關(guān)鍵字:STM32F407  ESP8266  機(jī)智云 引用地址:從5方面描述STM32F407+ESP8266連接機(jī)智云過程

上一篇:CC1101工作原理 基于與STM32的CC1101接口移植
下一篇:意法半導(dǎo)體的STM32F429微控制器上的一個μClinux項目實現(xiàn)

小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved