欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
ESP8266如何檢測透傳模式下單片機讀取接收到的數據 求幫助
[打印本頁]
作者:
duhuan502
時間:
2018-7-31 17:54
標題:
ESP8266如何檢測透傳模式下單片機讀取接收到的數據 求幫助
ESP8266:如何檢測透傳模式下單片機讀取接收到的數據
用51做的用手機控制單片機驅動步進電機,想問問怎么檢測ESP8266收到了信息,我設置了一個LED亮滅來檢測,發現只在發送AT指令時有效果,而在透傳模式傳送數據沒作用,求教。
程序如下,暫時將輸出PWM注釋了
單片機源程序如下:
#include <reg52.H>
#include <stdio.h>
#define MAIN_Fosc 11059200UL //宏定義主時鐘HZ
unsigned int a;
typedef unsigned char INT8U;
typedef unsigned char uchar;
typedef unsigned int INT16U;
int b=1;
int c =1;
int d =1;
int e=1;
int f=0;
int i;
INT8U t=0;
INT8U Freq=22;
INT8U PWM_T = 9;
sbit LED1 = P1^0;
sbit down = P3^0;
sbit up = P3^1;
void Delay_Ms(INT16U ms)
{
INT16U i;
do
{
i = MAIN_Fosc / 96000;
while(--i); //96T per loop
}while(--ms);
}
//PWM初始化
void pwm_Init()
{
TMOD = 0x02; //定時器0,工作模式2,8位定時模式
TH0=210; //寫入預置初值(取值1-255,數越大PWM頻率越高)
TL0=210; //寫入預置值 (取值1-255,數越大PWM頻率越高)
TR0=1; //啟動定時器
ET0=1; //允許定時器0中斷
EA=1; //允許總中斷
P1=0xFF; //初始化P1,輸出端口
PWM_T=Freq/2;
}
//串口初始化
void Uart_Init()
{
PCON |=0X80; //是否波特率倍增
SCON=0x50;
TMOD=0X20; //設置定時器1為模式2,做為波特率發生器
TL1=0xFF; //57600波特率的初值,板子使用11.592M晶振,初值=256-12000000/32/12/2400
TH1=0xFF; //
TI = 1;
TR1=1; //啟動波特率發生
}
void main(void)
{
unsigned char ldat;
// pwm_Init();
Uart_Init();
//設置串口方式2
do
{
for (a=0; a<50000; a++);
printf ("AT+CIPMUX=1\n");
do
{
if(RI)
{ //查詢是否有數據接收
LED1=~LED1;//用LED來檢測是否收到數據
ldat=SBUF; //數據暫存于變量中
RI=0;
if (ldat=='K')
{ b=0 ;
d=0;
}
c++;
if (c==1000)
{ c=1;
d=0;
}
}
}while (d);
}while(b) ;
b=1;
c =1;
d =1;
do
{
for (a=0; a<50000; a++);
printf ("AT+CIPSERVER=1,7671\n");
do
{
if(RI)
{
ldat=SBUF; //數據暫存于變量中
RI=0;
if (ldat=='K')
{
b=0 ;
d=0;
}
c++;
if (c==1000)
{ c=1;
d=0;
}
}
}while (d);
}while(b) ;
b=1;
c =1;
d =1;
while(1)
{
if(RI){ //查詢是否有數據接收
ldat=SBUF; //數據暫存于變量中
RI=0; //重新清0等待接收
//命令接收開始
if (ldat=='}')
{
char k[50] ;
do
{
if(RI)
{
//查詢是否有數據接收
ldat=SBUF; //數據暫存于變量中
RI=0; //重新清0等待接收
k[f]=ldat;
f++;
if(ldat==0x0A)
{ e=0; }
}
}while (e);
printf("%s\n", k);
f=0;
e=1;
for(a=0; a<50; a++)
{
k[a]=0;
}
}
//命令結束
}
//電機驅動
// if(!up)
// {
// if(Freq<60)
// {
// Freq+=1;
// PWM_T=Freq/2;
// }
//
// Delay_Ms(10);
// }
//
// if(!down)
// {
// if(Freq>1)
// {
// Freq-=1;
// PWM_T=Freq/2;
// }
//
// Delay_Ms(10);
// }
}
}
/****************************************************
/定時器0中斷模擬PWM
****************************************************/
timer0() interrupt 1
{
t++; //每次定時器溢出加1
if(t==Freq) //PWM周期 100個單位
{
t=0; //使t=0,開始新的PWM周期
P1=0x00; //輸出端口
}
if(PWM_T==t) //按照當前占空比切換輸出為高電平
{
P1=0xff; //
}
}
復制代碼
所有資料51hei提供下載:
ESP8266:如何檢測透傳模式下單片機讀取接收到的數據.docx
(13.14 KB, 下載次數: 16)
2018-7-31 17:53 上傳
點擊文件名下載附件
作者:
diy1997
時間:
2018-8-1 09:24
esp8266用做收發模塊?
只要設置正確并連接后,收到數據就會通過串口發送出來的吧?
作者:
zhj0712
時間:
2019-1-27 15:11
我也是這種情況 AT的OK 透傳的讀不到數據,,樓主解決了嗎
作者:
1876476642
時間:
2019-9-30 21:50
AT模式下不能透傳
作者:
xiuyueyuan2013
時間:
2019-10-3 01:45
可能就是沒收到數據,收到一個字節的數據RI也會置位
作者:
天涯飛
時間:
2020-3-7 21:15
1876476642 發表于 2019-9-30 21:50
AT模式下不能透傳
可以的
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1