找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5871|回复: 4
收起左侧

单片机esp8266发送HTTP请求程序

[复制链接]
ID:499446 发表于 2019-3-27 21:50 | 显示全部楼层 |阅读模式
在制作期间总结了如何使用esp8266发送HTTP请求。
#include <reg51.h>

typedef   unsigned char  uint8;
typedef   unsigned int   uint16;

//uint8 Buf[]="AT+UART=115200,8,1,0,0\r\n";
uint8 Buf[]="AT+CIPMUX=0\r\n";
uint8 BufA[]="AT+CIPSTART=\"TCP\",\"192.168.191.1\",8080\r\n";
uint8 BufB[]="AT+CIPSEND=120\r\n";
uint8 BufC[]="GET /Fresh_Management/Getemputer?wendu=12&shidu=23\r\n";

void delay(uint16 n)
{
        while (n--);
}
void ms_delay(uint16 t){
        uint16 i,j;
        for(i=t;i>0;i--)
        for(j=110;j>0;j--);
}
/*波特率为9600*/
void UART_init(void)
{
    SCON = 0x50;        //串口方式1

    TMOD = 0x20;        // 定时器使用方式2自动重载
    TH1 = 0xFD;    //9600波特率对应的预设数,定时器方式2下,TH1=TL1
    TL1 = 0xFD;

    TR1 = 1;//开启定时器,开始产生波特率
}

/*发送一个字符*/
void UART_send_byte(uint8 dat)
{
        SBUF = dat;       //把数据放到SBUF中
        while (TI == 0);//未发送完毕就等待
        TI = 0;    //发送完毕后,要把TI重新置0
}

/*发送一个字符串*/
void UART_send_string(uint8 *buf)
{
        while (*buf != '\0')
        {
                UART_send_byte(*buf++);
        }
}

main()
{
        UART_init();
        UART_send_string(Buf);
        while (1)
        {
               
                ms_delay(2000);
                UART_send_string(BufA);
                ms_delay(2000);
                UART_send_string(BufB);
                ms_delay(3000);
                UART_send_string(BufC);
                ms_delay(2000);
                UART_send_string(BufC);
                ms_delay(5000);
                //delay(2000);
        }

}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:344806 发表于 2019-7-21 12:12 | 显示全部楼层
为什么生成不了.hex
回复

使用道具 举报

ID:492684 发表于 2020-7-3 15:06 | 显示全部楼层
请问如果是https怎么修改
回复

使用道具 举报

ID:495287 发表于 2020-7-3 21:03 | 显示全部楼层
翻帖偶遇获新知,
研新无界前辈持,
反复消化领悟迟,
唯有点赞励路知。
回复

使用道具 举报

ID:1065346 发表于 2023-3-6 00:23 | 显示全部楼层
#include <reg51.h>

typedef   unsigned int   uint16;
#define uchar unsigned char

sbit led0 = P1 ^ 0;
sbit led1 = P1 ^ 1;
sbit led2 = P1 ^ 2;
sbit led3 = P1 ^ 3;
sbit led4 = P1 ^ 4;
sbit led5 = P1 ^ 5;

void delay(uint16 n)
{
    while (n--);
}

void ms_delay(uint16 t){
    uint16 i,j;
    for(i=t;i>0;i--)
        for(j=110;j>0;j--);
}
/*波特率为9600*/
void UART_init(void)
{
    SCON = 0x50;        //串口方式1

    TMOD = 0x20;        // 定时器使用方式2自动重载
    TH1 = 0xFD;    //9600波特率对应的预设数,定时器方式2下,TH1=TL1
    TL1 = 0xFD;

    TR1 = 1;//开启定时器,开始产生波特率
}

/*发送一个字符*/
void UART_send_byte(unsigned char dat)
{
    SBUF = dat;       //把数据放到SBUF中
    while (TI == 0);//未发送完毕就等待
    TI = 0;    //发送完毕后,要把TI重新置0
}

/*发送一个字符串*/
void UART_send_string(const char *buf)
{
    while(*buf)
        UART_send_byte(*buf++);
}

void main(){
    UART_init();
    UART_send_string("AT+CIPMUX=0\r\n");
    while (1)
    {

        ms_delay(2000);
        led0 = 0;
        UART_send_string("AT+CIPSTART=\"TCP\",\"ip\",80\r\n");
        ms_delay(2000);
        led1 = 0;
        UART_send_string("AT+CIPSEND=68\r\n");
        ms_delay(3000);
        led2 = 0;
        UART_send_string("GET /?id=234567 HTTP/1.1\r\n");
        ms_delay(2000);
        led3 = 0;
        UART_send_string("Host: 123.57.40.102\r\n");
        ms_delay(2000);
        led4 = 0;
        UART_send_string("Connection: close\r\n\r\n");
        ms_delay(2000);
        led5 = 0;
        delay(1);
        led0 = 1;
        led1 = 1;
        led2 = 1;
        led3 = 1;
        led4 = 1;
        led5 = 1;
    }

}
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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