久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2901|回復: 9
打印 上一主題 下一主題
收起左側

幫忙看看引用頭文件stdio.h發送ESP8266 AT指令編譯報錯

[復制鏈接]
跳轉到指定樓層
樓主
ID:516910 發表于 2019-5-9 10:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
24黑幣
#include <reg52.h>
#include <stdio.h>

sbit Mr0 = P1^0;
sbit Ml0 = P1^1;
sbit Mr1 = P1^2;
sbit Ml1 = P1^3;

#define uint unsigned int
#define uchar unsigned char

#define card_go    {Mr0=0,Ml0=1,Mr1=0,Ml1=1;}
#define card_back  {Mr0=1,Ml0=0,Mr1=1,Ml1=0;}
#define Left_card_go   {Mr0=0,Ml0=1,Mr1=1,Ml1=0;}
#define Right_card_go   { Mr0=1,Ml0=0,Mr1=0,Ml1=1;}
#define stop_card   { Mr0=0,Ml0=0,Mr1=0,Ml1=0;}
#define up       'A'
#define down     'B'
#define left     'C'
#define right    'D'
#define stop     'F'

uchar  i=0;
uchar  dat=0;
uchar  buff[3]=0;
bit  flag_REC=0;
bit  flag    =0;

void sint() interrupt 4
{
    if(RI)                  
    {
       RI=0;
    P1 = 0;
       dat=SBUF;
       if(dat=='O'&&(i==0))
         {
            buff[i]=dat;
            flag=1;        
         }
       else
      if(flag==1)
     {
      i++;
      buff[i]=dat;
      if(i>=2)
      {i=0;flag=0;flag_REC=1 ;}  
     }
  }
}

void sennd()
{
                TI = 1;
                puts("AT+CIPMUX=1\r");
                while(!TI);
                puts("AT+CIPSTART=0,"TCP","10.201.134.152",39727\r");
                while(!TI);
                TI = 0;
}

void UART_INIT()
{
        SM0 = 0; SM1 = 1;
        REN = 1;
        EA = 1;
        ES = 1;
        TMOD = 0x20;
        TH1 = 0xfd;
        TL1 = 0xfd;
        TR1 = 1;
}

void main()
{
        UART_INIT();
        while(1)
        {
                if(flag_REC==1)
                        {
                                flag_REC=0;
                                if(buff[0]=='O'&&buff[1]=='N')
                                switch(buff[2])
                                 {
                                                 case up : card_go; break;
                                                 case down : card_back; break;
                                                 case left : Left_card_go; break;
                                                 case right : Right_card_go; break;
                                                 case stop : stop_card; break;


                                }
                        }
        }
}

報錯:C:\Users\Administrator\Desktop\HC-06card\M4card.c(57): error C141: syntax error near 'TCP'

是不是不能用stdio.h發送AT指令?

最佳答案

查看完整內容

puts是用于PC系統的不適用51單片機,如果你要發送字符串可以使用下面的函數。 void Sent_UART(u8 dat) { ES = 0; TI=0; SBUF = dat; while(!TI); TI = 0; ES = 1; } void Uart_Send_String(u8 *string) { while(*string) { Sent_UART(*string++); Delay_Us(5); } } void ESP8266_Init() { Uart_Sen ...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:90663 發表于 2019-5-9 10:07 | 只看該作者
puts是用于PC系統的不適用51單片機,如果你要發送字符串可以使用下面的函數。

void Sent_UART(u8 dat)
{
        ES = 0;
        TI=0;
        SBUF = dat;
        while(!TI);
TI = 0;
ES = 1;
}

void Uart_Send_String(u8 *string)
{
        while(*string)
        {
                Sent_UART(*string++);
                Delay_Us(5);
        }

}

void ESP8266_Init()
{
        Uart_Send_String("AT\r\n");
        Delay_ms(3000);
        Uart_Send_String("AT\r\n");
        Delay_ms(3000);
                                Uart_Send_String("AT+CIPMUX=1\r\n");
        Delay_ms(3000);
                                Uart_Send_String("AT+CIPSERVER=1,8080\r\n");
}
回復

使用道具 舉報

板凳
ID:516910 發表于 2019-5-9 10:08 | 只看該作者
可以建立一個數組然后puts數組嗎?
回復

使用道具 舉報

地板
ID:516910 發表于 2019-5-9 10:59 | 只看該作者
摟貓睡覺的魚 發表于 2019-5-9 10:47
puts是用于PC系統的不適用51單片機,如果你要發送字符串可以使用下面的函數。

void Sent_UART(u8 dat)

請教老師 您 發的回復最后一個函數中如果帶有雙引號的字符串該怎樣處理呢?
列如: Uart_Send_String("AT+CIPSTART=0,"TCP","10.201.134.152",39727");
這種編譯會報錯 有多個雙引號
回復

使用道具 舉報

5#
ID:531379 發表于 2019-5-9 11:09 | 只看該作者
學習了
回復

使用道具 舉報

6#
ID:516910 發表于 2019-5-9 13:38 | 只看該作者
已解決!使用轉義字符:
回復

使用道具 舉報

7#
ID:516910 發表于 2019-5-9 13:41 | 只看該作者
找到方法了 。!使用轉義字符!!
下邊是修改的代碼供大家參考
謝謝 老師的回答 !非常感謝!
#include <reg52.h>
#include <stdio.h>

sbit Mr0 = P1^0;
sbit Ml0 = P1^1;
sbit Mr1 = P1^2;
sbit Ml1 = P1^3;

#define uint unsigned int
#define uchar unsigned char

#define card_go    {Mr0=0,Ml0=1,Mr1=0,Ml1=1;}
#define card_back  {Mr0=1,Ml0=0,Mr1=1,Ml1=0;}
#define Left_card_go   {Mr0=0,Ml0=1,Mr1=1,Ml1=0;}
#define Right_card_go   { Mr0=1,Ml0=0,Mr1=0,Ml1=1;}
#define stop_card   { Mr0=0,Ml0=0,Mr1=0,Ml1=0;}
#define up       'A'
#define down     'B'
#define left     'C'
#define right    'D'
#define stop     'F'

uchar  i=0;
uchar  dat=0;
uchar  buff[14]=0;
bit  flag_REC=0;
bit  flag    =0;

void sint() interrupt 4
{
    if(RI)                  
    {
       RI=0;
       dat=SBUF;
       if(dat=='+'&&(i==0))
         {
            buff[i]=dat;
            flag=1;        
         }
       else
      if(flag==1)
     {
      i++;
      buff[i]=dat;
      if(i>=14)
      {i=0;flag=0;flag_REC=1 ;}  
     }
  }
}

void delay(uint z)
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);                
}

void sennd()
        {
                TI = 1;
                puts("AT+CIPMUX=1\r");
                while(!TI);
                delay(2000);
                puts("AT+CIPSTART=0,\"TCP\",\"10.201.134.152\",36594\r");
                while(!TI);
                TI = 0;
                delay(3000);
        }

void UART_INIT()
{
        SM0 = 0; SM1 = 1;
        REN = 1;
        EA = 1;
        ES = 1;
        TMOD = 0x20;
        TH1 = 0xfd;
        TL1 = 0xfd;
        TR1 = 1;
}

void main()
{
        UART_INIT();
        EA = 0;
        delay(2000);
        sennd();
        EA = 1;
        while(1)
        {
                if(flag_REC==1)
                        {
                                flag_REC=0;
                                if(buff[0]=='+'&&buff[1]=='I')
                                switch(buff[10])
                                 {
                                                 case up : card_go; P1 = ~P1; break;
                                                 case down : card_back; break;
                                                 case left : Left_card_go; break;
                                                 case right : Right_card_go; break;
                                                 case stop : stop_card; break;      
                                }
                        }
        }
}
回復

使用道具 舉報

8#
ID:90663 發表于 2019-5-9 14:15 | 只看該作者
15775211617 發表于 2019-5-9 10:08
可以建立一個數組然后puts數組嗎?

客氣了互相學習,我發給你的上面有,分別發送就可以的,具體的你也可以看ESP8266官網的程序,里面有很多學習資料。
回復

使用道具 舉報

9#
ID:176854 發表于 2019-5-9 15:54 | 只看該作者
15775211617 發表于 2019-5-9 10:59
請教老師 您 發的回復最后一個函數中如果帶有雙引號的字符串該怎樣處理呢?
列如: Uart_Send_String("A ...

Uart_Send_String("AT+CIPSTART=0,\"TCP\",\"10.201.134.152\",39727\r\n")
雙引號前面加斜杠,我以前也用過GSM模塊,用的是SIM808
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕 欧美 日韩 | 国产激情偷乱视频一区二区三区 | 色爱综合网 | 天堂成人国产精品一区 | 亚洲欧美另类在线观看 | av免费网址 | 一级毛片在线播放 | 欧美国产日韩在线观看 | 亚洲喷水 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 99国产精品久久久久 | 一区二区精品 | 亚洲综合精品 | 国产资源在线播放 | 欧美video| 精品一区二区三区日本 | 亚洲福利| 精品国产一区二区国模嫣然 | 欧美精品一区二区在线观看 | 欧美www在线| 欧美视频成人 | 国产一区二区三区免费 | 国产成人在线免费 | 国产亚洲欧美在线 | 亚洲三级免费看 | 中文字幕欧美在线观看 | av天天干| 亚洲精品成人免费 | 中文一区| 国产人免费人成免费视频 | 一区二区三区欧美在线 | 国产乱码精品1区2区3区 | 日本精品一区二区三区在线观看视频 | 日本一二三区高清 | 亚洲一页| 国产黄色大片在线观看 | 久久中文字幕一区 | 国产一级片免费看 | 一区二区三区免费网站 | 成人在线中文字幕 | 成人免费观看男女羞羞视频 |