初次接触ESP8266模块,说实话还是费了很大的劲,从硬件部分到软件部分,一个一个的问题对于我这个新手来说,确实有些吃力。不过还好,在51hei电子论坛有很多这方面的资料,也有很多很友好的人,感谢他们给予的帮助。
虽然我是一个菜鸟,但我还是希望和大家分享一下。时间比较仓促,代码也有很多不成熟的地方,希望能对初次接触这个模块的人有一些帮助。
1,硬件:USB转TTL是必需的,ESP8266模块,一般模块出厂就已经烧好了固件,拿到就可以直接发AT指令,AT指令的手册网上很多,可以自行百度。
硬件连接 TXD-RXD, RXD-TXD; 交叉连接,有的模块需要自己拉高一个引脚的电平,如图所示,电源最好是3.3V,模块发热很严重,不要长时间接电。
2 ,软件:在执行代码之前,模块要先设定好什么模式,用串口助手发送AT指令设定。我的是AP模式,模块设定为server端,然后生成一个WiFi,名字随 意,这个时候(当然得知道模块的IP地址),可以用电脑上的网络助手,尝试连接模块,电脑必须连接ESP8266模块产生的WiFi才可以;这几步之后,模块就可以连接已经下载好的单片机了,在上面设定好之后,模块断电重启后,在设定的模式不会变,WiFi不会变,后面的指令就需要通过单片机发送了。到这儿基本就可以实现简单的通讯了,程序工程已附上。
时间仓促,我也是这几天才学的,分享只是为了更多的分享,不足的地方希望谅解,目前准备做433M。有愿意指导的或是技术交流的可以加我qq1946706342
单片机源程序如下:
#include #include #include #define uchar unsigned char #define uint unsigned int sbit D1 = P2^0; sbit D2 = P2^1; sbit D3 = P2^2; sbit D4 = P2^3; sbit D5 = P2^4; sbit D6 = P2^5; sbit D7 = P2^6; sbit D8 = P2^7; uchar Receive; uchar Recive_table[15]; uchar flag = 1; uchar flag1 = 1; uchar flag2 = 0; uchar num = 0; uint i=0; void ms_delay(uint n) { uint j,m; for( m =n; m>0; m--) for(j=110; j>0; j--); } void us_delay(uchar n) { while(n--); } void Usart_init() { SCON = 0x50; //设置串行口工作在方式一,且启动串行口接收(REN=1) TMOD = 0x20; //设置计数器1工作在方式二,即自动重装计数值(8位) PCON=0X80; TH1 = 0xf3; //设置波特率为4800 TL1 = 0xf3; EA = 1; //开总中断 TR1 = 1; //启动计数器 } void sent_AT(uchar *at_comd) { ES = 0; while(*at_comd != '