找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2850|回复: 6
打印 上一主题 下一主题
收起左侧

esp8266无法执行stc8单片机发送的at指令

[复制链接]
跳转到指定楼层
楼主
ID:516689 发表于 2019-4-23 18:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1黑币
stc8单片机串口2与esp8266连接 我给模块发at指令的字符串 模块闪了蓝灯,应该是发送到了 但是模块并没有执行想要的at指令,求救

#include "stc8.h"
#include "intrins.h"

#define FOSC            11059200UL
#define BRT             (65536 - FOSC / 115200 / 4)
sbit LED1=P5^5;

bit busy;
char wptr;
char rptr;
char buffer[16];

void Uart2Isr() interrupt 8 using 1
{
    if (S2CON & 0x02)
    {
        S2CON &= ~0x02;
        busy = 0;
    }
    if (S2CON & 0x01)
    {
        S2CON &= ~0x01;
        buffer[wptr++] = S2BUF;
        wptr &= 0x0f;
    }
}

void Uart2Init()
{
    S2CON = 0x50;
    T2L = BRT;
    T2H = BRT >> 8;
    AUXR = 0x14;
    wptr = 0x00;
    rptr = 0x00;
    busy = 0;
}

void Uart2Send(char dat)
{
    while (busy);
    busy = 1;
    S2BUF = dat;
}

void Uart2SendStr(char *p)
{
    while (*p)
    {
        Uart2Send(*p++);
    }
}
void delay(unsigned int m)                  //????
    {
          int  a=0,b=0;
          for(a=0;a<500;a++)
          for(b=0;b<m;b++);
        
        }
void main()
{
    Uart2Init();
    IE2 = 0x01;
    EA = 1;
          delay(2000);
    Uart2SendStr("AT+CWMODE=2");
          Uart2Send('\r');
          Uart2Send('\n');
          LED1=0;
          delay(5000);
    Uart2SendStr("AT+CWSAP=\"521\",\"123465789\",1,4");
                Uart2Send('\r');
          Uart2Send('\n');
          delay(5000);
          Uart2SendStr("AT+RST");
                Uart2Send('\r');
          Uart2Send('\n');
    while (1)
    {
                          LED1=1;
                        
    }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:407977 发表于 2019-7-18 14:42 | 只看该作者
请问你解决了这个问题吗?这里我觉得有坑,官方并没有相关解决方法,而且很多人都在反应这个问题。
回复

使用道具 举报

板凳
ID:432270 发表于 2019-7-18 15:39 | 只看该作者
我不太清楚stc8单片机,不过我最近玩过一阵子的8266wifi模块。首先,如果你是用单片机控制wifi模块再由模块控制LED灯的话,你应该做两块板子,一个负责发送,一个负责接收,由wifi模块进行通信。如果你是用手机控制wifi模块再由模块控制LED灯的话,你应该通过云平台与wifi模块进行数据传输。如果,你做的东西比较简单的话,而不知道我说的是啥子的话,请选择忽略我说的。
回复

使用道具 举报

地板
ID:584695 发表于 2019-7-18 18:50 来自手机 | 只看该作者
什么硬件
回复

使用道具 举报

5#
ID:584695 发表于 2019-7-18 18:51 来自手机 | 只看该作者
晶振什么样的,还有auxr有或运算
回复

使用道具 举报

6#
ID:546770 发表于 2019-7-19 13:43 | 只看该作者
我也使用过这个模块,我的建议是单片机先和电脑串口通信,然后esp8266的大部分AT指令都会有返回值,C中有一个函数是比较字符串的,具体什么函数我忘了,功能大概是前一个字符串与后一个字符串比较,若符合就返回其余部分,用个判断看ESP8266是不是收到了单片机的指令,然后就是你的AT指令之间的延时是不是有点长,最近这个模块也好像有点问题,超过一定时间自动重启,延个200ms就行了,毕竟机器的反应比人可快多了,
回复

使用道具 举报

7#
ID:829433 发表于 2024-1-1 23:47 | 只看该作者
"AT+CWMODE=2,指令后面需要回车  \r\n
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表