STM32通过8266连接机智云平台

机智云固件库烧录步骤
新建数据点
在这里插入图片描述
在这里插入图片描述
下载完之后的包,我们需要移植

在这里插入图片描述
在这里插入图片描述把移植进来的文件加入工程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于机智云自动生成的代码是HAL库,而我们写的是标准库,所以需要加入在这里插入图片描述
如果自己原来的文件里面没有下面这三个,也要添加进去
在这里插入图片描述
没有的话代码在这,自己添加key,timer,usart3代码

代码已经移植差不多了,接下去我们开始修改代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
给gizwits_product.c最下方添加以下代码

int32_t uartWrite(uint8_t *buf, uint32_t len)
{
    
    
    uint32_t i = 0;
    
    if(NULL == buf)
    {
    
    
        return -1;
    }
#ifdef PROTOCOL_DEBUG
    GIZWITS_LOG("MCU2WiFi[%4d:%4d]: ", gizGetTimerCount(), len);
#endif
    
    for(i=0; i<len; i++)
    {
    
    
        //USART_SendData(UART, buf[i]);//STM32 test demo
        //实现串口发送函数,将buf[i]发送到模组
		USART_SendData(USART3,buf[i]);
        while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕 
#ifdef PROTOCOL_DEBUG
        GIZWITS_LOG("%02x ", buf[i]);
#endif
        if(i >=2 && buf[i] == 0xFF)
        {
    
    
          //实现串口发送函数,将0x55发送到模组
		   USART_SendData(USART3,0x55);
         while(USART_GetFlagStatus(USART3,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕 
#ifdef PROTOCOL_DEBUG
        GIZWITS_LOG("%02x ", 0x55);
#endif
        }
    }
    
#ifdef PROTOCOL_DEBUG
    GIZWITS_LOG("\n");
#endif
    
    return len;
}

在这里插入图片描述
main.c
(根据需求略改)

#include "sys.h"	
#include "delay.h"	
#include "led.h" 
#include "beep.h" 
#include "key.h"
#include "usart.h"
#include "timer.h"
#include "usart3.h"
#include "gizwits_product.h" 
 
/* Óû§Çøµ±Ç°É豸״̬½á¹¹Ìå*/
dataPoint_t currentDataPoint;

void Gizwits_Init(void)
{
    
      
	
	TIM3_Int_Init(9,7199);//1MSϵͳ¶¨Ê±
    usart3_init(9600);//WIFI³õʼ»¯
	memset((uint8_t*)&currentDataPoint, 0, sizeof(dataPoint_t));//É豸״̬½á¹¹Ìå³õʼ»¯
	gizwitsInit();//»º³åÇø³õʼ»¯
}


 int main(void)
 {
    
    
	int key;
	delay_init();	    	 //ÑÓʱº¯Êý³õʼ»¯	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶
	uart_init(115200);	    //´®¿Ú³õʼ»¯Îª115200
 	LED_Init();			    //LED¶Ë¿Ú³õʼ»¯
	KEY_Init();             //°´¼ü³õʼ»¯ 
	BEEP_Init();            //·äÃùÆ÷³õʼ»¯
    Gizwits_Init();         //ЭÒé³õʼ»¯
	printf("--------»úÖÇÔÆIOT-¶à·¿ØÖÆʵÑé----------\r\n");
	printf("KEY1:AirLinkÁ¬½Óģʽ\t KEY_UP:¸´Î»\r\n\r\n");
   	while(1)
	{
    
    
	    userHandle();//Óû§²É¼¯
         
        gizwitsHandle((dataPoint_t *)&currentDataPoint);//ЭÒé´¦Àí
 		
	    key = KEY_Scan(0);
		if(key==KEY1_PRES)//KEY1°´¼ü
		{
    
    
			printf("WIFI½øÈëAirLinkÁ¬½Óģʽ\r\n");
			gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-linkģʽ½ÓÈë
		}			
		if(key==WKUP_PRES)//KEY_UP°´¼ü
		{
    
      
			printf("WIFI¸´Î»£¬ÇëÖØÐÂÅäÖÃÁ¬½Ó\r\n");
			gizwitsSetMode(WIFI_RESET_MODE);//WIFI¸´Î»
		}		
		delay_ms(200);	
	}	 

 }


猜你喜欢

转载自blog.csdn.net/qq_45025738/article/details/108706659