标题:
esp8266无法执行stc8单片机发送的at指令
[打印本页]
作者:
1084419656
时间:
2019-4-23 18:13
标题:
esp8266无法执行stc8单片机发送的at指令
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;
}
}
作者:
不知廉耻
时间:
2019-7-18 14:42
请问你解决了这个问题吗?这里我觉得有坑,官方并没有相关解决方法,而且很多人都在反应这个问题。
作者:
蒙河河
时间:
2019-7-18 15:39
我不太清楚stc8单片机,不过我最近玩过一阵子的8266wifi模块。首先,如果你是用单片机控制wifi模块再由模块控制LED灯的话,你应该做两块板子,一个负责发送,一个负责接收,由wifi模块进行通信。如果你是用手机控制wifi模块再由模块控制LED灯的话,你应该通过云平台与wifi模块进行数据传输。如果,你做的东西比较简单的话,而不知道我说的是啥子的话,请选择忽略我说的。
作者:
834858254@qq.co
时间:
2019-7-18 18:50
什么硬件
作者:
834858254@qq.co
时间:
2019-7-18 18:51
晶振什么样的,还有auxr有或运算
作者:
小黑屋525
时间:
2019-7-19 13:43
我也使用过这个模块,我的建议是单片机先和电脑串口通信,然后esp8266的大部分AT指令都会有返回值,C中有一个函数是比较字符串的,具体什么函数我忘了,功能大概是前一个字符串与后一个字符串比较,若符合就返回其余部分,用个判断看ESP8266是不是收到了单片机的指令,然后就是你的AT指令之间的延时是不是有点长,最近这个模块也好像有点问题,超过一定时间自动重启,延个200ms就行了,毕竟机器的反应比人可快多了,
作者:
mycshunter
时间:
2024-1-1 23:47
"AT+CWMODE=2,指令后面需要回车 \r\n
作者:
单片机初学者174
时间:
2024-5-13 01:10
延时劲量给长点,还有程序中并没有检测AT指令发送后,模块的响应结果。模块初始化尽量加完整的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1