16-ESP8266 SDK开发基础入门篇--TCP 服务器 非RTOS运行版,串口透传(串口回调函数处理版)
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运行版,串口透传(串口回调函数处理版)的更多相关文章
- 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高位和低位 ...
- 17-ESP8266 SDK开发基础入门篇--TCP服务器 RTOS版,小试牛刀
https://www.cnblogs.com/yangfengwu/p/11105466.html 现在开始写... lwip即可以用socket 的API 也可以用 netconn 的API实 ...
- 29-ESP8266 SDK开发基础入门篇--编写TCP 客户端程序(Lwip RAW模式,非RTOS版,精简入门)
https://www.cnblogs.com/yangfengwu/p/11456667.html 由于上一节的源码长时间以后会自动断开,所以再做这一版非RTOS版的,咱直接用lua源码里面别人写的 ...
- 28-ESP8266 SDK开发基础入门篇--编写wifi模块TCP 客户端程序(官方API版,非RTOS版)
https://www.cnblogs.com/yangfengwu/p/11432795.html 注:这节实现的功能是WIFI模块作为TCP 客户端,连接咱的TCP服务器,然后实现透传 本来想着做 ...
- 24-ESP8266 SDK开发基础入门篇--Android TCP客户端.控制 Wi-Fi输出PWM的占空比,调节LED亮度
https://www.cnblogs.com/yangfengwu/p/11204436.html 刚才有人说需要点鸡汤.... 我想想哈;我还没问关于哪方面的鸡汤呢!!! 我所一直走的路线 第一: ...
- 23-ESP8266 SDK开发基础入门篇--编写Android TCP客户端 , 加入消息处理
https://www.cnblogs.com/yangfengwu/p/11203546.html 先做接收消息 然后接着 public class MainActivity extends App ...
- 22-ESP8266 SDK开发基础入门篇--编写Android TCP客户端 , 连接和断开
https://www.cnblogs.com/yangfengwu/p/11192618.html 有些很细致的东西参考这篇 https://www.cnblogs.com/yangfengwu ...
- 1-ESP8266 SDK开发基础入门篇--开发环境搭建
因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...
- 25-ESP8266 SDK开发基础入门篇--控制WIFI连接路由器
https://www.cnblogs.com/yangfengwu/p/11324411.html 说个事情,现在SDK的版本已经出到3.0了,但是我还是使用2.0 如果只是为了学习研究 选择3 ...
随机推荐
- Locust性能测试-no-web模式和csv报告保存 转自:悠悠
前言 前面是在web页面操作,需要手动的点start启动,结束的时候也需要手工去点stop,没法自定义运行时间,这就不太方便. locust提供了命令行运行的方法,不启动web页面也能运行,这就是no ...
- Java 函数式编程和Lambda表达式
1.Java 8最重要的新特性 Lambda表达式.接口改进(默认方法)和批数据处理. 2.函数式编程 本质上来说,编程关注两个维度:数据和数据上的操作. 面向对象的编程泛型强调让操作围绕数据,这样可 ...
- Django:信号的使用
信号 Django中提供了"信号调度",用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 应用:比如插入数据到数据库,插入之前写日 ...
- 区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》
区块链DApp正在经历市场洗礼,常言道,对抗动荡最稳妥的是稳扎稳打的技术学习,不能临时抱佛脚. 马化腾说:互联网会像水和电一样融入我们的生活.而区块链呢?它是价值互联网的基石,是未来必然的趋势,也会像 ...
- 通过公网ip访问虚拟机web服务
工作中有需要进行通过外网ip访问虚拟机上的web服务,通过查阅资料,将配置过程整理如下: 思路:通过路由器的端口映射访问虚拟机上的web服务 1. 前提是在虚拟机上的web服务已经部署好,并且可以通过 ...
- 关于何时执行shiro AuthorizingRealm 里的 doGetAuthenticationInfo与doGetAuthorizationInfo
1.doGetAuthenticationInfo执行时机如下 当调用Subject currentUser = SecurityUtils.getSubject(); currentUser.log ...
- 06-jQuery进阶
本篇主要介绍jQuery的正则.冒泡事件.委托事件.以及DOM操作.JavaScript对象以及ajax等知识: 一.正则 简而言之,正则的规则无论是各种语言均是通用的,故其规则中的字符便不再介绍了, ...
- PostgreSQL分区表实现——pg_pathman安装、配置
近日由于系统运行时间太长,数据库库表中的数据也是越来越多,为了缩短库表的操作时间,所以对数据库中的部分库表进行分区的操作. 通过研究,决定采用pg_pathman插件对库表进行分区操作.pg_path ...
- Deployment
Deployment RC是kubernetes中的一个核心概念,Deployment 是新一代的RC,除了拥有RC的功能外,还具备一下特性: 支持事件和状态查看:可以查看Deployment升级的状 ...
- ES6--不定参数
<一>,在讨论ES6的不定参数之前,我们先一起回顾一下ECMAScript5的无名参数. 早先,javascript提供arguments对象检查函数的所有参数,从而不必定义每一个要用的参 ...