https://www.cnblogs.com/yangfengwu/p/11105466.html

其实官方给的RTOS的版本就是在原先非RTOS版本上增加的

https://www.cnblogs.com/yangfengwu/p/5205570.html    后面的TCP,UDP基本的配置也就是像AT这样,只不过咱是用SDK开发

配置一下WIFI的工作模式  无线名称

    wifi_set_opmode(STATIONAP_MODE);//配置WiFi的模式STATION + AP AP--连接WIFI自身的无线实现通信  STATION--wifi连接路由器,手机或者电脑也连接路由器,实现通信
soft_ap_Config.ssid_len = strlen(SSID);//热点名称长度,与你实际的名称长度一致就好 memcpy(soft_ap_Config.ssid,SSID,soft_ap_Config.ssid_len);//实际热点名称设置,可以根据你的需要来
memcpy(soft_ap_Config.password,PWD,strlen(PWD));//热点密码设置
soft_ap_Config.authmode = AUTH_WPA2_PSK;//加密模式
soft_ap_Config.channel = ;//信道,共支持1~13个信道
soft_ap_Config.max_connection = ;//最大连接数量,最大支持四个,默认四个 wifi_softap_set_config_current(&soft_ap_Config);//设置 Wi-Fi SoftAP 接口配置,不保存到 Flash
// wifi_softap_set_config(&soft_ap_Config);//设置 Wi-Fi SoftAP 接口配置,保存到 Flash

下载进去

       

接着做TCP 服务器

其实就是参考这个文档

其实说一下...官方其实给例子了...就是那个不带SDK的1.5版本的

如果不明白为什么是http但是用的TCP  https://www.cnblogs.com/yangfengwu/category/1383497.html    看头几节

所以我就不班门弄斧了.......直接拷贝,然后写上注释

//接收到数据
void TcpServerRecv(void *arg, char *pusrdata, unsigned short length)
{
while(length--)
{
USART_SendData(UART0, *(pusrdata++));//接收的数据发给串口
}
} //断开
void TcpServerDisCon(void *arg)
{
struct espconn *pesp_conn = arg; os_printf("TCP Client %d.%d.%d.%d:%d disconnect\n", pesp_conn->proto.tcp->remote_ip[],
pesp_conn->proto.tcp->remote_ip[],pesp_conn->proto.tcp->remote_ip[],
pesp_conn->proto.tcp->remote_ip[],pesp_conn->proto.tcp->remote_port);
} //程序启动了监听
void TcpServerListen(void *arg)
{
struct espconn *pesp_conn = arg;//接收传过来的 espconn 信息 espconn_regist_recvcb(pesp_conn, TcpServerRecv);//设置接收回调
espconn_regist_disconcb(pesp_conn, TcpServerDisCon);//设置断开连接回调
}

完成了上面就是WIFI监听8888端口 ,客户端连接上以后发送的数据直接转发到串口

模块默认是192.168.4.1

测试

好现在咱再进一步  做成透传的   再让WIFI串口接收的数据发给网络

https://blog.csdn.net/u010333084/article/details/51336886

上一节咱用任务处理的串口数据,这次咱用回调实现,,这样处理起来快

测试

注意哈,这样做实际上就是那个函数在中断函数里面运行了....切记函数里面别加延时

好现在把串口接收的数据转发给网络

因为发送需要

所以咱定义一个全局的这个变量

思路是这个变量在监听到连接,断开和网络接收到数据里面赋值

如果只放到网络接收到数据里面赋值..那么如果客户端连接了,它不先给咱发数据,咱就不能发给他,因为变量没有赋值

不过现在这样有个问题是  最后连接的或者最后给我发的数据的TCP客户端,我下次的数据会发给它

大家可以再做个数组哈,,把这个全部保存下来,,自己扩展下哈

提示哈,,做四个数组就可以,,循环判断如果哪个在连接状态就发送

测试

如果再把这里的发送改为直接用数组复制给串口发送缓冲区(只调用一句话),就完美了

自己开动大脑想办法吧

https://www.cnblogs.com/yangfengwu/p/11112015.html

16-ESP8266 SDK开发基础入门篇--TCP 服务器 非RTOS运行版,串口透传(串口回调函数处理版)的更多相关文章

  1. 18-ESP8266 SDK开发基础入门篇--TCP 服务器 RTOS版,串口透传,TCP客户端控制LED

    https://www.cnblogs.com/yangfengwu/p/11112015.html 先规定一下协议 aa 55 02 01 F1 4C 控制LED点亮  F1 4C为CRC高位和低位 ...

  2. 17-ESP8266 SDK开发基础入门篇--TCP服务器 RTOS版,小试牛刀

    https://www.cnblogs.com/yangfengwu/p/11105466.html 现在开始写... lwip即可以用socket 的API  也可以用 netconn  的API实 ...

  3. 29-ESP8266 SDK开发基础入门篇--编写TCP 客户端程序(Lwip RAW模式,非RTOS版,精简入门)

    https://www.cnblogs.com/yangfengwu/p/11456667.html 由于上一节的源码长时间以后会自动断开,所以再做这一版非RTOS版的,咱直接用lua源码里面别人写的 ...

  4. 28-ESP8266 SDK开发基础入门篇--编写wifi模块TCP 客户端程序(官方API版,非RTOS版)

    https://www.cnblogs.com/yangfengwu/p/11432795.html 注:这节实现的功能是WIFI模块作为TCP 客户端,连接咱的TCP服务器,然后实现透传 本来想着做 ...

  5. 24-ESP8266 SDK开发基础入门篇--Android TCP客户端.控制 Wi-Fi输出PWM的占空比,调节LED亮度

    https://www.cnblogs.com/yangfengwu/p/11204436.html 刚才有人说需要点鸡汤.... 我想想哈;我还没问关于哪方面的鸡汤呢!!! 我所一直走的路线 第一: ...

  6. 23-ESP8266 SDK开发基础入门篇--编写Android TCP客户端 , 加入消息处理

    https://www.cnblogs.com/yangfengwu/p/11203546.html 先做接收消息 然后接着 public class MainActivity extends App ...

  7. 22-ESP8266 SDK开发基础入门篇--编写Android TCP客户端 , 连接和断开

    https://www.cnblogs.com/yangfengwu/p/11192618.html 有些很细致的东西参考这篇   https://www.cnblogs.com/yangfengwu ...

  8. 1-ESP8266 SDK开发基础入门篇--开发环境搭建

    因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...

  9. 25-ESP8266 SDK开发基础入门篇--控制WIFI连接路由器

    https://www.cnblogs.com/yangfengwu/p/11324411.html 说个事情,现在SDK的版本已经出到3.0了,但是我还是使用2.0 如果只是为了学习研究   选择3 ...

随机推荐

  1. git 学习笔记 ---标签管理

    发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照 ...

  2. 转!!通俗理解数字加密,数字签名,数字证书和https

    原博文地址:https://www.jianshu.com/p/4932cb1499bf 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应. ...

  3. 十二、vue中watch原理

    1.普通的watch 2.对象属性的watch:   对象和数组都是引用类型,引用类型变量存的是地址,地址没有变,所以不会触发watch.这时我们需要进行深度监听,就需要加上一个属性 deep,值为 ...

  4. TOEFL词汇笔记英语托福英语

    conjectural-based on guessing 推测的-给予猜测的 consciously-on purpose 有意识地-有目的地 conserve-retain保存-保存 conspi ...

  5. iOS学习——NSLog输出各种类型

    在开发过程中,在调试过程中经常打印不出自己想要的数据格式,还时常报警告,所以整理了一下iOS中用NSLog打印各种数据类型的样式.整型占位符说明 : %d : 十进制整数, 正数无符号, 负数有 “- ...

  6. iOS中copy和strong修饰符的区别

    iOS中copy和strong修饰符的区别 //用copys修饰的生成的都是不可变的对象 ,如果调用可变类型方法的直接报错 @property(nonatomic,copy)NSString * cp ...

  7. 如何使用GUID硬盘分区格式安装新windows系统

    全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构.目前硬盘格式有两种,一种MBR,另一个就是GUID.一般电脑买过来是windows7以上,比如wi ...

  8. 二十五、sql中where条件在数据库中提取与应用浅析

    问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语法解析.权限检查. ...

  9. Oracle SQL函数-NLSSORT

    Syntax 用途: NLSSORT返回字符值char的排序规则键和显式或隐式指定的排序规则.排序规则键是一个用于根据指定的排序规则对char进行排序的字节字符串.排序规则键的属性是:按二进制比较由给 ...

  10. 【转】vsftpd用户登入不进去问题

    实在是登陆不上... 我已经加了一个新的用户UID和GID都设置到1000以后 /etc/vsftpd.conf也加了local_enable=yes 以standalone模式运行. 重启服务器后, ...