标题:
ESP8266配置为STA模式,无法从手机接收数据到51单片机
[打印本页]
作者:
ahandsomeboy
时间:
2018-12-1 18:15
标题:
ESP8266配置为STA模式,无法从手机接收数据到51单片机
大神们,小弟遇到一个问题,就是用8266接到51单片机上,想让手机和8266同时连接到一个网络,配置为透传模式,用手机控制单片机,但现在怎么也不行,只能用串口助手往单片机发数据,手机发只能到电脑串口助手上,无法控制单片机。谁能指教一下!感激不尽
作者:
zzzy
时间:
2018-12-1 21:49
单片机的串口波特率和8266的匹配了吗?还要注意交叉数据线 ,单片机Tx--8266的RX ,单片机RX--8266的TX
作者:
ahandsomeboy
时间:
2018-12-2 20:14
zzzy 发表于 2018-12-1 21:49
单片机的串口波特率和8266的匹配了吗?还要注意交叉数据线 ,单片机Tx--8266的RX ,单片机RX--8266的TX
波特率改了,连接也没错,就是单片机对8266的AT发送出现问题,在电脑串口助手上发AT指令可以,但是写在程序里就不行了,很奇怪
作者:
ahandsomeboy
时间:
2018-12-2 20:15
/*这是我的单片机程序,我现在让他为AP模式*/
#include <reg52.h>
#include <stdio.h>
#include <intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 receiveData;//接收数据的变量
u16 a;
bit flag=1;
float S=0;
void UsartInit()
{
SCON=0X50; //设置为工作方式1 0110
TMOD=0X21; //设置计数器工作方式2
TH1=0XFD; //计数器初始值设置,注意波特率是9600的
TL1=0XFD;
TH0=0;
TL0=0;
TR0=0;
ET0=1;
TI=1;//printf往手机发数据,不能少
TR1=1; //打开计数器
ES=0;
EA=1; //打开总中断
TI=1;
for (a=0; a<50000; a++);//延时几秒,让模块有时间启动
printf ("AT+CWMODE=2\n");
do{
if(RI){
receiveData=SBUF;//接收缓存器
RI=0;
if(receiveData=='K')
flag=0;
}
}while(flag);
flag=1;
for (a=0; a<30000; a++);
printf ("AT+RST\n");
do{
if(RI){
receiveData=SBUF;//接收缓存器
RI=0;
if(receiveData=='y')
flag=0;
}
}while(flag);
flag=1;
for (a=0; a<50000; a++);
printf ("AT+CIPMUX=1\n"); //
do{
if(RI){
receiveData=SBUF;//接收缓存器
RI=0;
if(receiveData=='K')
flag=0;
}
}while(flag);
flag=1;
for (a=0; a<30000; a++);
printf ("AT+CIPSERVER=1,8080\n"); //
do{
if(RI){
receiveData=SBUF;//接收缓存器
RI=0;
if(receiveData=='K')
flag=0;
}
}while(flag);
flag=1;
for (a=0; a<30000; a++);
//RI=0;
ES=1; //打开串口中断
}
void main()
{
UsartInit(); // 串口初始化
while(1)
{
if(receiveData=='1')
P2=0x00;
if(receiveData=='2')
P2=0xff;
}
}
void Usart() interrupt 4
{
receiveData=SBUF;//接收缓存器
RI = 0;//清除接收中断标志位
}
作者:
123qw321
时间:
2019-4-19 14:37
你好,只要线没接错,单片机直接读串口就可以了啊,我用手机发送至单片机可以,但是单片机无法发送至手机,
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1