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)
设置好前面的五项,可以通过网络调试助手往模块发送消息。
后面的两项是,让无线模块发送消息到助手。