1.重新了解了usart串口的代码(这里用usart1代码为例)
USART1_IRQHandler(串口1中断函数代码)
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾) { Res =USART_ReceiveData(USART1); //读取接收到的数据 if((USART_RX_STA&0x8000)==0)//接收未完成 { if(USART_RX_STA&0x4000)//接收到了0x0d { if(Res!=0x0a)USART_RX_STA=0;//接收错误,重新开始 else USART_RX_STA|=0x8000; //接收完成了 } else //还没收到0X0D { if(Res==0x0d)USART_RX_STA|=0x4000; else { USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ; USART_RX_STA++; if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收 } } }
此代码解析参考网站http://blog.sina.com.cn/s/blog_776077610102vgqg.html
个人理解:这个代码就是以第14位(0-15)是否收到0x0d为为分界线。
2.AT指令 调试ESP8266模块的ATP模式 TCP客户端
usmart调试 (atk_8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime))
1.atk_8266_send_cmd("AT+CWMODE=1","OK",50)
2.atk_8266_send_cmd("AT+RST","OK",50)
3.atk_8266_send_cmd("AT+CWJAP=\"SSID\",\"password\"","OK",300) (转义序列)
4.atk_8266_send_cmd("AT+CIFSR","OK",50)
5.atk_8266_send_cmd("AT+CIPSTART=\"TCP\",\"ip\",8086","OK",200)
6.atk_8266_send_cmd("AT+CIPSEND=0,25","OK",200)
7.atk_8266_send_data(“发送的东西”,"OK",100)
设置好前面的五项,可以通过网络调试助手往模块发送消息。
后面的两项是,让无线模块发送消息到助手。