机智云固件库烧录步骤
新建数据点
下载完之后的包,我们需要移植
把移植进来的文件加入工程
由于机智云自动生成的代码是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*)¤tDataPoint, 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 *)¤tDataPoint);//ÐÒé´¦Àí
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);
}
}