发新帖我要提问
12
返回列表
打印
[应用相关]

STM32通过ESP8266与平台通信,远程控制STM32

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
21
发给她更好fh|  楼主 | 2022-7-29 23:41 | 只看该作者 回帖奖励 |倒序浏览
主函数
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
                        }       
                 }               
}

}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则