esp8266+单片机之最最简单(AT指令)应用(一)

2019-04-15 18:45发布

51单片机+esp8266 wifi模块的STA模式 模块作为客户端发送数据给远程主机 烧代码前需要先配置一下WiFi模块,AT+CWJAP,让其先加入一个有效网络 #include #include #define uchar unsigned char #define uint unsigned int void delayms(uint x) //51单片机的常用延时方式 { uint i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void uart_init() //串口的初始化 { TMOD = 0x20; TH1 = 0XFd; TL1 = 0XFd; SCON = 0x50; PCON = 0X00; TR1 = 1; EA = 1; ES = 1; } void wifi_init() //初始化wifi模块 { ES = 0; //关闭串口中断,以免发送指令过程中被其他事情打断 TI = 1; printf("AT+RST "); //往串口发重启指令,在单片机中使用printf默认是往串口发送数据 delayms(1200); //适当延时,给wifi模块一点反应时间 printf("AT+CWMODE=1 "); //选择STA模式 delayms(1200); printf("AT+CIPMUX=0 "); //单通道模式 delayms(1200); printf("AT+CIPSTART="UDP","192.168.1.118",6666 "); //设置远程主机IP和端口号 delayms(1200); printf("AT+CIPMODE=1 "); //选择透传 delayms(1200); printf("AT+CIPSEND "); //发送数据命令 delayms(1200); while(!TI); TI = 0; ES = 1; //重新开启串口中断 } void send(char *p) //发送数据函数 { TI=0; do { SBUF = *p; p++; while(!TI); TI = 0; }while(*p); SBUF = ' '; while(!TI); TI = 0; } void main() { uart_init(); wifi_init(); while(1) { send("win "); //这里只简单发送几个字符串作为演示 delayms(1000); //适当延时 } }