找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于单片机向8266发送at指令的问题

[复制链接]
跳转到指定楼层
楼主
ID:487464 发表于 2019-3-17 00:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
400黑币
我用的是STC12C5A60S2单片机,串口1用于接收数据,串口2负责发送at指令控制esp8266,我之前已经用串口调试助手发送过at指令,模块响应正常,而且波特率都是9600.单独用串口调试助手也能正常接收到单片机发的at指令。但是为什么一连接上单片机,电脑连接上WIFI之后,用网络调试助手连接不上!!!!急求!!附上一部分代码:
void WifiInit() //wifi初始化

   {

              Uart2_send_string("AT+CIPMUX=1\r\n");//设置多连接
           Delay_1ms(2000);
           Uart2_send_string("AT+CWMODE=2\r\n");//wifi模式
           Delay_1ms(2000);
                   Uart2_send_string("AT+CIPSERVER=1,8080\r\n"); //建立server,端口号为8080
           Delay_1ms(2000);
           Uart2_send_string("AT+CIPSTO=2880\r\n");//超时2880s
           Delay_1ms(2000);
          

   }
void Uart2Init(void)                //9600bps@11.0592MHz      
{
        AUXR &= 0xf7;                //波特率不倍速
        S2CON = 0x40;                //8位数据,可变波特率
        BRT = 0xFD;                //设定独立波特率发生器重装值
        AUXR &= 0xfb;                //独立波特率发生器时钟为Fosc/12,即12T
        AUXR |= 0x10;                //启动独立波特率发生器
        IE2 =0x01;        //开串口2中断  ES2=1
}






void Uart2_send_byte(unsigned char date)//串口2发送一个字节
{       
           unsigned char temp = 0;
   IE2 = 0x00; //关串口2中断,es2=0
    S2CON= S2CON & 0xFD; //B'11111101,清零串口2发送完成中断请求标志
    S2BUF   =   date;
   //while(TI ==0); //等待发送完成
    do
   {
     temp = S2CON;
     temp = temp & 0x02;
    }while(temp==0);
    // TI     =   0;  //清零串口发送完成中断请求标志
    S2CON= S2CON & 0xFD; //B'11111101,清零串口2发送完成中断请求标志
    //    ES     =   1;  //允许串口1中断
    // ES2 = 1
    IE2 = 0x01; //允许串口2中断,ES2=1
}


void Uart2_send_string(unsigned char *p)   //串口2发送一个字符串
{
        while(*p!='\0')
        {
                Uart2_send_byte(*p);
                p++;
        }
}



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

使用道具 举报

沙发
ID:491116 发表于 2019-3-17 02:42 | 只看该作者
1. 你电脑连接的wifi是指哪个wifi,你办公室的?还是这个模块建立的热点,如果是你办公室的,你模块没连接办公室的热点,你电脑的网络调试助手怎么和模块的服务端通信?如果是这个模块建立的热点,你程序中没建立吧?
另:
-  AT+CWMODE=2之后,不是需要重启模块吗?(AT+RST)
-  你这个服务端模块是不是要通过AT+CWSAP建立属于这个模块的热点呢

评分

参与人数 1黑币 +60 收起 理由
admin + 60 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:487464 发表于 2019-3-19 21:55 | 只看该作者
没人会吗
回复

使用道具 举报

地板
ID:136106 发表于 2019-3-20 11:03 | 只看该作者
1.你的程序里没写模块连接测试程序,你的模块上电之后正常工作没有?
回复

使用道具 举报

5#
ID:377166 发表于 2019-3-21 21:08 | 只看该作者
因为,你WiFi连接了你单片机的正负极和TXD、RXD,你试着用个3.3v的电源模块单独连接WiFi的正负极,这样串口就不会占用了
回复

使用道具 举报

6#
ID:851819 发表于 2020-12-19 19:13 | 只看该作者
楼主解决了吗,我也遇到了同样的问题,能发送,但8266不能好像不能执行,是什么原因呢
回复

使用道具 举报

7#
ID:168857 发表于 2020-12-25 14:08 | 只看该作者
不连接wifi就是开始开服务?????ip都没获取到,步骤1发送AT,测试是否连接,2、连接wifi 3、开启服务端,4、监听端口数据处理
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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