日常有做工控的同学,一定有过这个经历,有的机器或设备使用串口通讯但是调试实物太麻烦或者成本太高。这个时候如果有一个能够模拟设备的东西将会事半工倍。一般来说使用串口通讯过程协议都比较简单,一般是简单的收发。网上找一圈软件串口一般都收费且使用驱动,兼容性和使用成本都比较高。

手里正好有一CH340的USB串口和8266,而8266又支持网络,那么如果用一个程序使用网络连接到8266。8266负责转发串口和网络的工具不是可以完美调试。当然展开来说还以的扩展出直接远程调试设备的效果,而且8266+340成本不过10块钱,加上随便写几行代码完美解决。

本文只讨论使用软件模拟设备的情况。在这种情况下8266就是一个中转,从上位机软件读取串口数据转发到和8266网络连接的软件上,这时在软件上可以收到上位发送来的数据,同时软件可以做出各种回应,以测试上位机处理数据的正确性。

为了方便测试和软件连接,这里把8266的IP写死。代码如下:

WiFi.mode(WIFI_STA);Serial.begin(115200);IPAddress local_IP(192, 168, 1, 166);IPAddress gateway(192, 168, 1, 1);IPAddress subnet(255, 255, 255, 0);//设置bool bConfigSucessed = WiFi.config(local_IP, gateway, subnet); //设置静态IP

接着连接到wifi,启动一个服务端以接收网络连接。

//全局服务端,监听端口9527
WiFiServer server(9527);//启动服务端server.setNoDelay(true);server.begin();

处理里就比较简单了,接收串口数据软件到连接过来的网络端,接收网络数据软件给串口。

void loop()
{static WiFiClient client = server.available();if (!client){client = server.available();}if (!client){return;}client.setNoDelay(true);String comdata = "";char buf[101];while (Serial.available() > 0) // 串口收到字符数大于零。{int size = Serial.read(buf, 100);buf[size] = '\0';comdata += buf;delay(2);}/******************串口打印数据************************/if (comdata != "") //如果接受到数据{//Serial.println(comdata);client.print(comdata);client.flush();}while (client.available()){//读取客户端发起的TCP请求unsigned char len = 0;size_t readsize = client.readBytes((char *)&len, 1);//Serial.println(readsize);//Serial.println(len);if (len > 200){client.stop();return;}char *buf = new char[len];readsize = client.readBytes(buf, len);buf[readsize] = '\0';String req = buf;delete[] buf;//Serial.println(req);if (req.startsWith("com:")){//Serial.println("COM");String msg = req.substring(4);Serial.updateBaudRate(atoi(msg.c_str()));}else if (req.startsWith("send:")){//Serial.println("SEND");String msg = req.substring(5);//Serial.println(msg.length());Serial.print(msg);}}
}

这里实现一个极简的协议,用了一个byte来保存数据长度,这里只能接收200以内的数据,当然完成可以扩展一下,不过一般通讯一条消息都在百以内,一般也够用,也可以把长数据拆分到200以内转发。还有这里只能接受一个客户端,如果需要也可以进行扩展处理。至此8266基本已经能正常工作。

使用8266做串口调试工具一相关推荐

  1. 8266串口调试助手_开源软件分享-基于WPF的串口调试工具

    最近同事在调试硬件的串口通讯功能,由于PLC暂时还没到,所以准备用USB转串口线连接在终端上,通过电脑USB口模拟串口收发功能.一开始同事下载了一款串口调试工具,发现没有自定义功能,比如通讯串口收到终 ...

  2. Linux 串口调试工具汇总

    在 linux 系统下进行串口调试或者开发时配合简单易用的串口调试工具那是必不可少.这篇博客对当前用的较多的,且我自己经常用的一些串口工具做一下汇总,大家可以参考一下. 实验环境: OS: Ubunt ...

  3. UART和RS232/RS485的关系是什么?RS485在linux下的调试 ubuntu串口调试工具

    串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式.但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句 ...

  4. 嵌入式开发<串口调试工具>

    嵌入式开发<串口调试工具> 前言 1,设备参数分类 2,设备参数修改 3,调试工具软件 一.软件界面 二.功能说明 1.串口设置 1)串口选择 2)自动换行 3)接收到文件 4)保存文件 ...

  5. 【开源】一款PyQT+Pyserial开发的串口调试工具

    [开源]PyQT+Pyserial开发的串口调试工具 串口调试工具是我们做嵌入式开发常用的工具,市面上已经有很多串口调试工具了,博主写这款串口调试工具一方面是为了学习Python PyQT Pyser ...

  6. Java串口助手 带UI界面 Java串口调试工具 FPV

    Java串口助手 带UI界面 Java串口调试工具 FPV 效果图 随便讲点 依赖jar包 代码 测试用代码 效果图 随便讲点 这个说是串口调试工具有点尴尬, 因为最开始是为了用电脑在自己做的小车上玩 ...

  7. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(5)- 软件优化

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之软件优化. 前面痞子衡已经初步实现了Jays-PyCOM的串口功能,并且通过了最基本的测试,但目前 ...

  8. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(3)- 串口功能实现(pySerial)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之串口功能实现. 串口调试助手是最核心的当然是串口数据收发与显示的功能,Jays-PyCOM借助的是 ...

  9. Mac OS下安装串口调试工具minicom

    最近在做一个Mac下的ssh调试工具,但是出现了一点问题.后来发现居然Mac下有串口调试工具可以用,所以果断换串口了,是普通PL2303芯片的usb转串口线. 接下来说下简单的安装步骤吧.我是勤劳的搬 ...

最新文章

  1. idea mybatis plus 代码生成插件_妙啊,Mybatis从浅入深-Plus(IDEA版通俗易懂)
  2. vivado----fpga硬件调试 (六)----数据导出
  3. django(七)之数据库表的单表-增删改查QuerySet,双下划线
  4. 盘点 12 个 GitHub 上的高仿项目
  5. linux国内计算机系统,计算机系统进化论 | Linux 中国
  6. leetcode 564,546
  7. 一些sql 语句(行列转换等)
  8. 485通讯线是几芯的_小令老师说门禁| 为什么485门禁必然会取代韦根?
  9. Linux:十条为系统管理员节省时间的命令
  10. 在python中创建虚拟环境和Django对数据库的操作(一)
  11. Python开发第一篇 基础篇(下)
  12. 使用Hystrix守护应用(1)
  13. 互联网架构师祝大家中秋节快乐!快领红包了!
  14. ASP.NET MVC带来的变化
  15. 数据包络分析法(DEA)_2
  16. php bi报表,PowerBI开发 报表设计技巧
  17. 计算机地理绘图软件叫什么,地理教师如何选择理想的绘图软件 ──基于对常用绘图软件的比较与分析...
  18. 百旺信息服务器端口,各省百旺参数设置服务器地址
  19. 动态规划(二)最优二分检索和0/1背包
  20. 使用Graphviz下的dot工具绘制图像

热门文章

  1. mib browser无法接收snmp trap消息解决
  2. 值得收藏的 104个 CSS 面试题
  3. Java web与web gis学习笔记(二)——百度地图API调用
  4. HSQLDB基本认识
  5. javaweb实现的在线鲜花商城源码(电商购物系统)
  6. 安装SQL Serve
  7. 树莓派3配置局域网打印服务器惠普打印机HP1108
  8. 一键修改分辨率bat_BAT批量处理一键修改设置IP(亲测有效)
  9. 更新PIP更换国内镜像源
  10. 想做一个网站,需要学些什么?