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. linux安装mysql后报错启动不了Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).

    今天安装完Mysql后,开启发生了错误: 2.打开错误信息文件,查看错误原因是:Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Table 'mys ...

  2. linux搭建GitLab

    GitLab CentOS6 1. 安装VMware和CentOS 2. 安装必备Linux插件 3. 准备安装GitLab 4. 开始安装GitLab 5. 配置GitLab 6. 启动GitLab ...

  3. python写文件无法换行的问题

    python写文件无法换行的问题,用'\n'  不行,直接打印的出来了. 网上查了查,都说是用  ‘\r\n’ ,但是这样打出来,不仅换行了,还加了一个空行. windows平台最后结果是    直接 ...

  4. yum -y install java-1.8.0-openjdk-devel.x86_64

    yum -y install java-1.8.0-openjdk-devel.x86_64

  5. MySQL数据库汇总

    -- mysql的最大连接数:默认为 100   -- mysql的增删改查   -- mysql统计各个字段(case when 用法 注:也可以使用其他的)   select (case when ...

  6. 用jQuery的toggle方法实现元素的左右滑动隐藏

    通常情况下给元素加toggle方法通常会是上下滑动隐藏,而有时我们又需要左右滑动隐藏怎么办呢 $(document).ready(function(){ $('#example').click(fun ...

  7. JAVA基础之DBUtils与连接池

    利用DBUtils进一步简化JDBC数据库的增删改查的代码,同时利用从连接池中接取连接,进而进行简化和减少资源的消耗! 一.DBUtils: 1.DBUtils就是JDBC的简化开发工具包.需要项目导 ...

  8. CSS-宽度自适应和浏览器兼容笔记

    自适应 宽度自适应:网页元素根据窗口或子元素自动调整宽度 适用百分比进行设置,例如:100% 铺满:50% 占据一般宽度 块元素如果不设置宽度,默认为100% 自适应中可以设置最大或者最小宽度和高度 ...

  9. The Middle English word was Affrike非洲

    Africa (n.) Latin Africa (terra) "African land, Libya, the Carthaginian territory, the province ...

  10. CentOS 7 的 redis 安装

    redis 安装 使用下面的命令,下载.解压.编译Redis: $ wget http://download.redis.io/releases/ $ tar xzf redis-x.x.x.tar. ...