主函数
int main(void)
{
u8 key;
u8 t=0;
u8 *str=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
initUART2();
LED_Init(); //LED端口初始化
/***********该部分主要是消除ESP8266由于已经连接过返回错误****************/
sendString(USART2,"+++"); //退出透传
delay_ms(1000);
sendString(USART2,"AT+CIPSTATUS\r\n");//查状态
delay_ms(1000);
//是否连接过,是则重启再连接
if((u8)strstr(RXBuffer,"STATUS:3"))//表明之前连接了TLNK
{
sendString(USART2,"AT+RST\r\n");//重启ESP8266
delay_ms(1000);
connet_TLINK();//连接TLINK
}
//若没连接过则直接连TLINK
else connet_TLINK();
/**************该部分主要是循环发送数据给TLINK*****************/
while(1)
{
if(strstr(RXBuffer,"no ip"))connet_TLINK();
LED0=0;
delay_ms(1000);
if(t++>30)//此处t不宜过小否则会让TLINK禁用
{
t=0;
if(strstr(RXBuffer,"open")) //字符串对比函数,看RXBuffer中是否还有open这样的子串
{
LED1=0;
sendString(USART2,"FM:40,21,1,#");//返回状态给TLINK
}
if(strstr(RXBuffer,"off")) //字符串对比函数,看RXBuffer中是否还有off这样的子串
{
LED1=1;
sendString(USART2,"FM:40,21,0,#"); //返回状态给TLINK
}
}
}
}
|