智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 10874|回复: 1
打印 上一主题 下一主题

[控制器] 51MCU发送指令给wifi模块esp8266(求助)

[复制链接]

12

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2321
威望
1771
贡献
454
兑换币
191
注册时间
2016-6-4
在线时间
48 小时
毕业学校
社会中成长
跳转到指定楼层
1#
发表于 2017-12-1 11:03:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
51MCU发送指令给wifi模块esp8266

以下是代码:
#include<reg51.h>
#include<intrins.h>
//#include"lcd.h"

#define led P1
sbit beep=P2^5;
unsigned char esp_at[11] = "AT+RST\r \n";  //""算一个字符
unsigned char esp_cwmode[16] = "AT+CWMODE=2\r \n";
unsigned char esp_cipmux[16] = "AT+CIPMUX=1\r \n";
unsigned char esp_server[24] = "AT+CIPSERVER=1,8080\r \n";
//unsigned char PuZh[]=" Pechin Science ";
//unsigned char esp_at[11] = "AT+RST\r\n";
//unsigned char esp_at[11] = "AT+RST\r\n";
//--声明全局函数--//
void UsartConfiguration();
void sendString(unsigned char *s);
void sendByte(unsigned char b);
void espInit();
//void remote_control(unsigned char ldat);
/*
void delay(unsigned int i)
{
while(i--);
}
*/

void main()
{
//unsigned char i;
led=0x00;
UsartConfiguration();
espInit();
                                         //LcdInit();

while(1)
{
                                               //remote_control(unsigned char ldat);
  led=0xff;
   
}
   
}

void UsartConfiguration()
{
SCON=0X50;   //设置为工作方式1
TMOD=0X20;   //设置计数器工作方式2
PCON=0X80;   //波特率加倍
TH1=0XF3;      //计数器初始值设置,注意波特率是4800的
TL1=0XF3;
//ES=1;      //打开接收中断
EA=1;      //打开总中断
TR1=1;         //打开计数器
}
void espInit()
{
unsigned int a;
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);     
sendString(esp_at);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);   
sendString(esp_cwmode);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);   
sendString(esp_cipmux);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
sendString(esp_server);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
for (a=0; a<50000; a++);
EA=0;
ES=1;
}
void sendByte(unsigned char b)
{
  SBUF = b;
  while(!TI);
  TI=0;
}
//发送字符串
void sendString(unsigned char *s)
{
  while(*s != '\0') //字符串默认结尾'\0',以此来判断字符串的结束
  {
    sendByte(*s);
    s++;
  }
}


通过使用串口工具,检测到51mcu可以发送指令,可是接上8266以后,8266一直没有响应,使用网络助手,也没有办法连接上8266.求助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
153
威望
75
贡献
48
兑换币
47
注册时间
2017-4-12
在线时间
15 小时
2#
发表于 2018-2-11 14:31:27 | 只看该作者
波特率的问题吧,esp8266默认的是115200吧
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 04:47 , Processed in 0.041069 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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