2019-06-04 13:01:57 weixin_44283571 阅读数 386
  • 单片机有很多种-1.3.第1季第3部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第3个课程,主要讲了单片机的发展史,各种主流单片机的各自特点,STC51单片机的各系列的特点以及项目中如何选型主控单片机。

    2482 人正在学习 去看看 朱有鹏

之前心血来潮花了近一个月制作了一台WiFi小车,功能不复杂主要是实现小车的前进后退与左右转弯。
小车主要组成有四大部分:
1. 51单片机
2.电机驱动模块
3.wifi模块
4.车身主体
51单片机只要用51单片机最小系统即可,可以自己制作也可以上淘宝买现成的零部件。
电机驱动模块主要是用于给电机供给稳定的电压,同时电机也是通过驱动模块与51单片机相连,进而能通过51单片机控制电机的正转与反转。我用的电机模块为L298N,下图为L298N模块的详解在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其中“单片机IO控制输入”便是用于电机驱动模块与单片机相连的的接口,接口IN1与IN2用于控制马达A,IN3与IN4用于控制马达B。

wifi模块我用的是ESP8266-CH-340,这块板对于第一次使用wifi模块的新手来说极其友好,首先买回来即可使用不用刷固件,其次这块板即可3.3v供电正常工作也可以5v供电正常工作,而可以5v正常工作也就意味着在于单片机(单片机也是5v正常工作)进行通信的时候就不用进行电平转换也可以进行通信。

顺带说一下关于电平转换,数字电路,电平就是电位的高低,用0和1表示。在计算机或者其他微处理器内部只能识别0和1这两个数字信号,不同的系统电平表示的0和1实际的电位并不相同。例如,高电平常用3.3V,5V,12V,低电平常用0,当不同的系统进行连接通信控制时,就要进行电平转换。打个比方,单片机的高电位为5v,而电脑的串口电平为12V,要实现电脑到单片机通信就必须将电脑的12V转到单片机的5V,反之,5V转到12V。

在这里插入图片描述
车身主体就由底盘与直流减速电机组成。

设计构想图:
设计构想图
详细图:
在这里插入图片描述
单片机与电机驱动模块相连原理图:在这里插入图片描述
单片机与wifi模块相连图解:
在这里插入图片描述
(如果单片机与WiFi模块工作电压都为5V则不需要串口电平转换模块,可直接相连TXD与RXD)
需要注意的问题:
三个模块需要共地,如果不共地那么单片机与WiFi模块将不能进行通信。
WiFi模块的使用需要用到AT指令进行配置,使用起来也不难可自行上网查询,详细教程可上B站找“叁仪电子”这位阿普主的视频。
最后附上照片两张:
在这里插入图片描述
在这里插入图片描述
代码

#include <reg52.h>
#define RunLed P1                  
#define ShowPort P2               
#define uchar unsigned char 
sbit M1A=P0^0;   //位定义电机1正
sbit M1B=P0^1;   //位定义电机1负
sbit M2A=P0^2;   //位定义电机2正
sbit M2B=P0^3;   //位定义电机2负
void tingzhi()   //停止
{
   M1A=0;                                   
   M1B=0;                                  
   M2A=0;                                 
   M2B=0;
}
void qianjin()    //前进
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;
}
void houtui()    //后退
{
   M1A=0;                                   
   M1B=1;                                   
   M2A=0;                                   
   M2B=1;
}
void youzhuan()  //右转
{
   M1A=0;                                   
   M1B=1;                                   
   M2A=1;                                   
   M2B=0;
}
void zuozhuan()   //左转
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=0;                                   
   M2B=1;
}
void delay(int i)    //延时函数
{
 int j,k;
 for(j=0;j<i;j++)
 for(k=0;k<j;k++);
}
void ms_delay(int t)   //延时ms函数
{  
 int k,j;  
 for(k=t;k>0;k--)   
 for(j=110;j>0;j--); 
} 
void init_serial()    //串口初始化,设置波特率115200
{
 TMOD=0x20;  
    TH1=0xFF;           
    TL1=0xFD; 
 SCON=0x50;   
    RCAP2H=0xFF;   
    RCAP2L=0xFD; 
 TCLK=1;   
 RCLK=1;   
    C_T2=0;   
    EXEN2=0;  
    TR2=1 ;
 TI=0; 
}
void Send_Uart(uchar value)  //单片机数据发送
{
 ES=0;       //串口中断关闭
 TI=0;       
 SBUF=value;     //将数据放入串口寄存器中
 while(TI==0);   
 TI=0;  
 ES=1;   
} 
void ESP8266_Set(uchar *puf)     // WIFI模块接收到单片机的AT指令          
{    
 while(*puf!='\0')    
 {   
  Send_Uart(*puf);     
  ms_delay(50);  
  puf++; 
  delay(50);   
 }   
 delay(500);  
}
void ControlCar(unsigned char ConType)    //选择小车运行的模式
{
 tingzhi();
 switch(ConType)                       
 {
  case 1:                          
  { 
   tingzhi();      
   //delay(240);
   qianjin();
   delay(240);
   break;
  }
  case 2: //后退                              
  { 
   tingzhi();       
   //delay(240);
   houtui(); 
   delay(240);
   break;
  }
  case 3: //左转                              
  { 
   tingzhi();        
   // delay(240);
   zuozhuan();                              
   delay(240);
   break;
  }
  case 4:                              
  { 
   tingzhi();        
   //delay(240);
   youzhuan();                               
   delay(240);
   break;
  }
  case 0: //停止                          
  {
   tingzhi();
   break;                               
  }
 }
}
void ComBreak() interrupt 4     //中断函数,单片机判断串口接收到的数据   
{
 unsigned char RecvData;          
 if(RI==1)                        
 { 
  RecvData=SBUF;          //从串口寄存器中读取数据        
  if(RecvData=='T')                
  {
   ControlCar(0);
  }
  if(RecvData=='S')              
  {
   ControlCar(1);
  }
  if(RecvData=='X')              
  {
   ControlCar(2);
  }
  if(RecvData=='Z')              
  {
   ControlCar(3);
  }
  if(RecvData=='Y')              
  {
   ControlCar(4);
  }
 
  //SBUF=RecvData;                 
  RI=0;        //把RI至0                    
 }
 if(TI==1)     //把TI至0              
 {
  TI=0;                      
 }
}
void main()     
{
 init_serial();            //串口初始化           
 ES=1;                     //串口中断打开       
 REN=1;                    //单片机接收允许位        
 EA=1;         //总中断打开
 delay(240);
   
 ESP8266_Set("AT+CWMODE_CUR=2\r\n"); //AP模式
    ESP8266_Set("AT+CIPMUX=1\r\n");
    ESP8266_Set("AT+CIPSERVER=1,8080\r\n");  
                      
 while(1)                          
 {                 
 }
}

2016-09-11 16:09:31 CSDN1344789841 阅读数 3586
  • 单片机有很多种-1.3.第1季第3部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第3个课程,主要讲了单片机的发展史,各种主流单片机的各自特点,STC51单片机的各系列的特点以及项目中如何选型主控单片机。

    2482 人正在学习 去看看 朱有鹏
之前做了一个andriod通过Wifi控制单片机的app,最近没事传上来,顺便赚点积分
app主要是界面更加友好,界面上有一个触控摇杆,四个拖动条(0-100),四个开关和四个按钮,作为控制,做遥控小车或者其他的手机端控制的小东西都比较方便,硬件基于ESP8266
单片机端也可以向app端发消息,app会把消息推到textview上
多的不说,直接上图
andriod界面





单片机驱动(范例程序)



用的之前比赛的一个最小系统,就像这样~


全览图~

其他手机的渣像素,还是oppo手机好啊。。。

链接http://download.csdn.net/detail/csdn1344789841/9627730点击打开链接


2018-10-10 12:45:42 ZLK1214 阅读数 2001
  • 单片机有很多种-1.3.第1季第3部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第3个课程,主要讲了单片机的发展史,各种主流单片机的各自特点,STC51单片机的各系列的特点以及项目中如何选型主控单片机。

    2482 人正在学习 去看看 朱有鹏

该程序是旧版本!最新版本为20190314版:
https://blog.csdn.net/ZLK1214/article/details/88432078 

本程序是从STM32F103ZE单片机驱动的88W8801程序(20180807版)移植过来的。

本程序所用的单片机型号为:STM32F407VE
PD14端口为复位引脚(PDN),请务必连接!不连接PDN引脚将导致固件无法下载!如果模块上有PDN和RESET两个引脚,只需要连接PDN引脚。因为模块上的RESET引脚是悬空的,根本就没有连到芯片上。
晶振用的是8MHz,请注意检查自己的开发板,看看晶振是不是8MHz。如果是25MHz,请修改system_stm32f4xx.c文件!

程序支持连接无密码的热点以及WEP、WPA-PSK和WPA2-PSK认证类型的热点,加密方式支持TKIP和AES。WEP加密类型仅支持添加一个密钥。
程序暂不支持创建AP热点(路由器热点)。需要创建AP热点代码的读者请私下联系QQ970349094。
88W8801不支持Ad-Hoc点对点模式, 请不要使用程序中与Ad-Hoc有关的函数。

用Keil5编写程序的时候,工程文件夹路径最好不要出现中文哦!不然代码提示可能会有问题
wifi_88w8801是主程序,直接打开下载运行即可。该程序裸机运行,不带操作系统,运行的是lwip-2.0.3协议栈

现在lwip2.1版本已经发布了。该版本的lwip压缩包(lwip-2.1.0.zip)中的src/netif文件夹下没有ethernetif.c了,那个文件是被移动到contrib-2.1.0.zip的examples/ethernetif文件夹下去了。

sd8801_uapsta.c是WiFi模块的固件,上电运行时必须由单片机发送给WiFi模块运行
该固件数据非常大,为了节约程序编译下载的时间,可以运行flash_saver程序将这些数据保存到Flash固定区域
然后根据串口提示,修改WiFi.h中WIFI_FIRMWAREAREA_ADDR的值(取消注释)
这样就可以移除sd8801_uapsta.c文件,大幅度降低程序烧写时间了

Keil5工程下载地址:https://pan.baidu.com/s/1Az-Ts1F8HIv2Pe1gqMQ9fQ

本程序也支持88W8782芯片,但需要将固件sd8801_uapsta.c替换成8782的内容(提取码:rn8h),然后把WiFi.h中的数据发送通道数WIFI_DATAPORTS_TX_NUM由11改为15。

【模块连线】 

D0~D3接PC8~11,CMD接PD2,CLK接PC12,RESET悬空,PDN接PD14。GND接电源负极,VCC直接接到电源正极。

【Keil5工程截图】

【笔者所用的开发板和WiFi模块】

在笔者所用的开发板上,Wi-Fi模块的VCC不是直接接到电源上的,而是串联了一个场效应管,当PA15为低电平时Wi-Fi模块通电。

【程序运行截图】

1. 串口输出

2. ping IP地址和计算机名

3. IE浏览器通过计算机名访问板上的HTTP服务器

4. 路由器管理页面中看到的DHCP客户端列表

5. TCP和UDP数据发送速度测试结果

【描述移植过程的Word文档(压缩包内)】

【程序运行结果】

STM32F407VE SDIO 88W8801
RESPCMD63, RESP1_b0ff8000
RESPCMD63, RESP1_b0300000
Number of I/O Functions: 3
Memory Present: 0
Relative Card Address: 0x0001
Card selected! RESP1_00001e00
SDIO Clock: 24MHz
[CIS] func=0, ptr=0x00008000
Product Information: Marvell 802.11 SDIO ID: 48
Manufacturer Code: 0x02df
Manufacturer Information: 0x9138
Card Function Code: 0x0c
System Initialization Bit Mask: 0x00
Maximum Block Size: 256
Maximum Transfer Rate Code: 0x5a
[CIS] func=1, ptr=0x00008080
Manufacturer Code: 0x02df
Manufacturer Information: 0x9139
Card Function Code: 0x0c
System Initialization Bit Mask: 0x00
Maximum Block Size: 512
[CIS] func=2, ptr=0x00008100
[CIS] func=3, ptr=0x00008180
Firmware is successfully downloaded!
CMDRESP 0x804d at 19ms
MAC Addr: 14:6B:9C:17:50:73
CMDRESP 0x8006 at 433ms
SSID 'O(n_n)O??~', MAC F0:B4:29:23:C3:59, RSSI 65, Channel 3
  Capability: 0x0c11 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 9.0Mbps 18.0Mbps 36.0Mbps 54.0Mbps
CMDRESP 0x8006 at 433ms
SSID 'CMCC-EDU', MAC C6:14:4B:57:E0:2D, RSSI 68, Channel 6
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID '???', MAC E4:F3:F5:21:55:DC, RSSI 48, Channel 6
  Capability: 0x0431 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 6.0Mbps 9.0Mbps 12.0Mbps 18.0Mbps
SSID 'CMCC-EDU', MAC C6:14:4B:62:AB:CD, RSSI 68, Channel 6
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'CMCC-EDU', MAC 66:14:4B:58:0A:E7, RSSI 70, Channel 6
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'CMCC-EDU', MAC 66:14:4B:57:FE:57, RSSI 64, Channel 6
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'CMCC-Young', MAC E6:14:4B:58:06:D0, RSSI 71, Channel 6
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'CMCC-Young', MAC C6:14:4B:57:E0:2E, RSSI 68, Channel 6
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'CMCC-Young', MAC 66:14:4B:57:FE:58, RSSI 63, Channel 6
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'CMCC-Young', MAC 66:14:4B:58:0A:E8, RSSI 71, Channel 6
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'CMCC-EDU', MAC E6:14:4B:58:06:DF, RSSI 69, Channel 6
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'NJSGHMP', MAC C8:3A:35:4B:47:F8, RSSI 70, Channel 7
  Capability: 0x0411 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
CMDRESP 0x8006 at 435ms
SSID 'k(j?m)l', MAC 40:31:3C:D3:33:E0, RSSI 52, Channel 9
  Capability: 0x0431 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 6.0Mbps 9.0Mbps 12.0Mbps 18.0Mbps
SSID 'CMCC-EDU', MAC 46:14:4B:57:F8:45, RSSI 68, Channel 11
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'Oct1158-2', MAC FC:D7:33:FE:D6:02, RSSI 22, Channel 11
  Capability: 0x0431 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 6.0Mbps 9.0Mbps 12.0Mbps 18.0Mbps
SSID 'cdu??', MAC C8:ED:7D:87:78:E0, RSSI 53, Channel 11
  Capability: 0x0431 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 6.0Mbps 9.0Mbps 12.0Mbps 18.0Mbps
SSID 'CMCC-Young', MAC 46:14:4B:57:F8:46, RSSI 68, Channel 11
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'FAST_6666', MAC D4:83:04:E3:99:9C, RSSI 33, Channel 11
  Capability: 0x0431 (Security: WPA2, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 6.0Mbps 9.0Mbps 12.0Mbps 18.0Mbps
SSID 'CMCC-EDU', MAC 56:14:4B:62:E9:E6, RSSI 49, Channel 11
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
SSID 'CMCC-Young', MAC 56:14:4B:62:E9:E7, RSSI 51, Channel 11
  Capability: 0x0621 (Security: Unsecured, Mode: Infrastructure)
  Rates: 1.0Mbps 2.0Mbps 5.5Mbps 11.0Mbps 18.0Mbps 24.0Mbps 36.0Mbps 54.0Mbps
CMDRESP 0x8006 at 220ms
Scan finished!
CMDRESP 0x80c4 at 0ms
CMDRESP 0x8028 at 0ms
CMDRESP 0x8006 at 1497ms
CMDRESP 0x8012 at 12ms
Waiting for authentication!
[Event 23] size=77
WMM status change event occurred!
[Event 43] size=10
Authenticated!
[Send] len=350, port=1
[Recv] len=590, port=1
[Send] len=350, port=2
[Recv] len=590, port=2
[Send] len=42, port=3
[Send] len=42, port=4
[Send] len=42, port=5
DHCP supplied address!
IP address: 192.168.1.101
Subnet mask: 255.255.255.0
Default gateway: 192.168.1.1
DNS Server: 202.115.80.132
[Send] len=42, port=6
Not in cache!
[Recv] len=42, port=3
[Send] len=79, port=7
[Send] len=42, port=8
[Send] len=79, port=9
[Recv] len=223, port=4
DNS Found IP: 208.118.235.79
Connecting to 208.118.235.79...
[Send] len=58, port=10
[Send] len=42, port=11
Packet on port 1 ACK at 1969ms
Packet on port 2 ACK at 1967ms
Packet on port 3 ACK at 1965ms
Packet on port 4 ACK at 1820ms
Packet on port 5 ACK at 1322ms
Packet on port 6 ACK at 1311ms
Packet on port 7 ACK at 1308ms
Packet on port 8 ACK at 1244ms
Packet on port 9 ACK at 1246ms
Packet on port 10 ACK at 1027ms
[Send] len=42, port=1
[Send] len=58, port=2
[Send] len=42, port=3
[Send] len=58, port=4
[Send] len=58, port=5
[Send] len=58, port=6
[Send] len=58, port=7
[Send] len=58, port=8
Connection error! code=-13
[Recv] len=42, port=5
2019-05-14 15:18:54 qq_41850449 阅读数 840
  • 单片机有很多种-1.3.第1季第3部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第3个课程,主要讲了单片机的发展史,各种主流单片机的各自特点,STC51单片机的各系列的特点以及项目中如何选型主控单片机。

    2482 人正在学习 去看看 朱有鹏

写在前面

之前博主学习了很多网络编程的东西是因为工作上要开始做“智能家居”、物联网方面的东西了。
下面主角要登场了。就是单片机。

关于ESP8266你必须知道的

博主使用的是安信可的产品,12S
在这里插入图片描述
常用AT指令:
(1) 设置模块为ST模式:发送:AT+CWMODE=1;返回:OK

(2) 查看当前WiFi列表:AT+CWLAP返回: OK

(3) 加入当前无线网络:发送命令:AT+CWJAP=”MERSAIN”,”XXXXXXXX”

第一个填你想要连接的WiFi名称,第二个填WiFi的密码

(4)查看当前模块IP地址:发送: AT+CWLIF返回:当前IP地址

(5)开启多连接模式 :发送命令:AT+CIPMUX=1返回:OK

(6)建服务器 发送命令:AT+CIPSERVER=1,8080(设置指令)

指令:AT+CIPSERVER=[,]

说明::0-关闭server模式,1-开启server模式 :端口号,缺省值为333 响应:OK

重点注意:
单片机发过去的时候要主要每条指令要换行 例如send(“AT+RST\r\n”); //往串口发重启指令

硬件连接

TXD RXD 互相对接,GND共地,VCC:wifi模块要接3.3V

51代码

#include <STC12C5A60S2.h>
#include <stdio.h>
#include<string.h>



#define uchar unsigned char 
#define uint unsigned int

uchar ReceiveData[5];  //回传的数组
uchar countnumber;

void uart_init()      //串口的初始化
{
	//9600bps@11.0592MHz
	PCON &= 0x7F;		//波特率不倍速
	SCON = 0x50;		//8位数据,可变波特率
	AUXR |= 0x40;		//定时器1时钟为Fosc,即1T
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//清除定时器1模式位
	TMOD |= 0x20;		//设定定时器1为8位自动重装方式
	TL1 = 0xDC;		//设定定时初值
	TH1 = 0xDC;		//设定定时器重装值
	ET1 = 0;		//禁止定时器1中断
	TR1 = 1;		//启动定时器1
	EA = 1;
	ES = 1;

} 



void delayms(uint xms)  //延时
{
uint i,j;
for(i=xms;i>0;i--)
	for(j=110;j>0;j--);
}


void Sent_ZF(uchar dat)  //发送一个字节
{
	ES = 0;
	TI=0;
	SBUF = dat;
	while(!TI);
    	TI = 0;
	ES = 1;
}

void send(uchar *string)  //发送字符串
{
while(*string)
 {
	Sent_ZF(*string++);

	}

}

void Uart1() interrupt 4     //串口1 接收数据4wei(收到8266回传的OK,其实是\r\nOK)
{                            //当然是因为目前8266里面刷的AT固件是出厂默认固件
	uchar a;
	if (RI==1)
	{

	//RI=0;       //复位中断请求标志,接收数据后置1
	a=SBUF;     //接收数据
	RI=0;       //复位中断请求标志,接收数据后置1


	*(ReceiveData + countnumber)=a;
	countnumber++;

	if (countnumber>4)
	{
		countnumber=0;

	}
}

} 



uchar data_compare(uchar *p)  //比较字符串
{
	if(strstr(ReceiveData,p)!=NULL)
	return 1;
	else
	return 0;
}




void wifi_init()      //初始化wifi模块
{
	while(1)
	{
	send("AT+RST\r\n");   //往串口发重启指令
	if(data_compare("OK"))break;
	
	delayms(600);         //适当延时,给wifi模块一点反应时间

	}
	memset(ReceiveData,0,5);


	while(1)
	{
	send("AT+CWMODE=1\r\n");  //选择STA模式
	if(data_compare("OK"))break;
	
	delayms(600);         //适当延时,给wifi模块一点反应时间

	}
	memset(ReceiveData,0,5);

	while(1)
	{
	send("AT+CIPMUX=0\r\n");  //单通道模式
	if(data_compare("OK"))break;
	
	delayms(600);         //适当延时,给wifi模块一点反应时间

	}
	memset(ReceiveData,0,5);



	while(1)
	{
	send("AT+CIPSTART=\"TCP\",\"192.168.1.100\",8080\r\n");   //往串口发重启指令
	if(data_compare("OK"))break;
	
	delayms(600);         //适当延时,给wifi模块一点反应时间

	}
	memset(ReceiveData,0,5);

	while(1)
	{
	send("AT+CIPMODE=1\r\n");  //选择透传
	if(data_compare("OK"))break;
	
	delayms(600);         //适当延时,给wifi模块一点反应时间

	}
	memset(ReceiveData,0,5);


	while(1)
	{
	send("AT+CIPSEND\r\n");  //发送数据命令
	if(data_compare("OK"))break;
	
	delayms(600);         //适当延时,给wifi模块一点反应时间

	}
	memset(ReceiveData,0,5);

}



void main()
{

	P27=0;      //蜂鸣器
	uart_init();
	delayms(2000);
	wifi_init();    //就可连上服务端了

	while(1)
	{
	
		;
	
	}
}

ESP8266固件

配套刷的是出厂默认固件,可去安信可官网下载

结束

以后会对其进行完善的

2012-03-02 21:08:01 MCU_WIFI_DEMO 阅读数 1883
  • 单片机有很多种-1.3.第1季第3部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第3个课程,主要讲了单片机的发展史,各种主流单片机的各自特点,STC51单片机的各系列的特点以及项目中如何选型主控单片机。

    2482 人正在学习 去看看 朱有鹏
芯片内集成了完整的网络协议,使网络连接到现有的嵌入式系统中而不增加中控芯片的负担。
没有更多推荐了,返回首页