串口和TCP互相转发工具

串口与TCP相互转发工具:原理、实现与远程调试实践 在嵌入式开发和工业自动化场景中,串口通信始终是设备调试和采集的基石,但其物理距离受限,难以满足远程运维与设备上云的需求。TCP/IP作为最通用的网络传输协议,天然适合跨地域的数据交互。将串口数据与TCP流量进行双向透传,成为远程调试串口设备、让老旧仪表接入网络以及实现Modbus RTU转TCP网关的关键技术。这类工具不仅要实现基本的字节转发,还需要应对缓冲区溢出、粘包处理、断线重连、多客户端共享等工程难点。本文从串口与TCP的数据模型差异出发,对比了ser2net、socat与硬件串口服务器等常见方案,并 阅读详情
AI摘要

本文详细介绍了在远程服务器环境下,如何通过串口共享和网络工具解决本地串口与虚拟机上位机之间的通信问题。作者在尝试多种软件如SAKURAFRP、VMWare、有人科技的虚拟串口软件、SerialtoEthernetConnector等后,由于各种限制未能成功。最后,作者自行编写了一个名为TCP2Com的程序,实现了物理串口和虚拟串口的TCP转换,具备自动重连、日志跟踪等功能,以满足调试需求。

由于项目调试需求,代码在远程服务器的虚拟机上,在本地计算机通过串口连接需要对接的设备,在远程服务器的上位机程序需要和此设备进行对接,系统结构如图1所示。

图1 系统网络结构图

如何将本地的串口共享给远程服务器上的虚拟机里面的上位机程序呢?远程服务器开启了内网穿透,使用的SAKURA FRP,感兴趣的可以自己摸索下,很好用的。我直接穿透的远程桌面,而远程桌面可以将本地计算机的串口共享到远程服务器,如图2所示:

图2 通过远程桌面共享端口

假设本地计算机的串口如图3所示,经过远程桌面共享后在远程服务器上就会多出一些串口出来,表示的就是本地计算机共享过来的串口,串口号一般和本地计算机的相同,但是在远程服务器的设备管理器中是显示不出来共享过来的串口的,用串口调试助手等软件可以看到,如图4所示。

图3 本地计算机的串口

图4 本地计算机串口映射到远程服务器后的串口

现在差最后一步,将远程服务器的串口共享给虚拟机就可以了,用的是VMWare虚拟机,通过给虚拟机添加串口就可以实现,设置如图5所示。

图5 虚拟机共享串口

但在实际使用的过程中发现虚拟机中的上位机并不能很好的和设备连接,可能是速度的问题或者是数据流转换的问题,总之不成功。但直接放到远程服务器上运行上位机是可以的(不在虚拟机上运行上位机),由于上位机开发环境在虚拟机上,还需要想想办法将远程服务器上的串口共享给虚拟机。

开始查找是否有满足要求的工具软件,其中用的较多的是将串口转换成网络数据,到目的地后再将网络数据转为串口。其中有人科技的工具可以建立一个虚拟串口和网络端口的映射,很方便,如图6所示。

图6 有人的虚拟串口软件

用有人的这个虚拟串口软件,我在虚拟机上就可以很方面的搭建一个虚拟串口,只要在远程服务器上搭建一个物理串口到虚拟机TCP8222端口的透明TCP连接就可以了,但有人的不支持物理串口转发,还需要查找串口到TCP服务器的转发软件才可以。

经过搜索,这个网页Best Serial to Ethernet solutions on the market列出了可选的方案,Serial to Ethernet Connector是用的比较多的,因此下载测试了一下,用其他串口,包括虚拟串口Serial to Ethernet Connector都能正常工作,但是对于这样远程桌面共享过来的串口却怎么都打不开,如图7所示。

图7 共享过来的串口无法打开使用

正常的是能直接打开的,如图8所示。

图8 其他串口是可以打开使用的

而且Serial to Ethernet Connector不是免费的哦。

推荐的第2个TCP-Com,第3个Network Serial Port Kit,网站打不开,从其他地方也下载不下来,只得作罢。

第4个SERIAL-TCP/IP还可以,网站能打开,并下载安装使用了,刚开始测试效果还可以,但当发一些十六进制数时,SERIAL-TCP/IP出现了传输错误,比如发送FF A5 03 04 07,SERIAL-TCP/IP转发过来就变为: FF 3F 04 07,猜测这可能是SERIAL-TCP/IP内存处理字符串的小Bug,如图9所示。另外,SERIAL-TCP/IP还有个小不足,检测不到虚拟串口,只能打开物理串口。

图9 SERIAL-TCP/IP转发出现错误

后面2个也是打开费劲,也没有认真去测。

为了更好地满足调试应用,自己就动手写了一个串口转TCP的小程序,基本特征如下:

1、支持打开物理串口和虚拟串口(不创建虚拟串口,但能打开其他工具创建的虚拟串口)。

2、支持通过TCP客户端连接到远程TCP服务器。

3、支持TCP客户端自动重连,并可配置重连周期。

4、支持TCP服务端监听,支持接入一个TCP连接,不支持多个TCP连接同时接入。

5、支持日志跟踪功能。

6、支持日志自动清空功能,并能配置。

7、支持日志暂停显示功能。

8、支持通信计数功能。

9、支持通信计数手动清零功能。

10、支持配置自动保存功能,软件下次启动自动加载上次配置。

软件名字暂定为TCP2Com,界面如图10所示:

图10 TCP2Com界面

如果需要可以通过下面的链接下载最新版本:

TCP2Com-标签版V1.2.9.1免费好用的串口转TCP工具

TCP2Com-标签版V1.2.8.1免费好用的串口转TCP工具

TCP2Com-标签版V1.2.7.2免费好用的串口转TCP工具

TCP2Com-标签版V1.2.7.1免费好用的串口转TCP工具

【免费】TCP2Com免费好用的串口转TCP工具V1.2.12.1资源-优快云下载

串口被独占?嵌入式调试中多工具共享串口的解决方案 串口通信是嵌入式调试的基础,但串口作为独占式资源,常导致多工具无法同时访问。其原理是操作系统通过文件句柄管理串口,同一时刻只允许一个进程持有。解决串口独占能提升调试效率,避免频繁切换工具。常见应用场景包括日志监控、AT指令发送和固件烧录。针对串口被占用问题,可通过虚拟串口、端口转发或自定义脚本实现多工具共享,同时需注意驱动兼容性和进程管理。 阅读详情

相关推荐

多功能串口工具:232接口与TCP/UDP协议的综合应用

串口通信是一种常见的设备间通信方式,依赖于串行通信接口,它通过串行数据线按位顺序逐个发送数据。RS-232是一种串行通信标准,广泛应用于计算机与设备之间的数据传输,它定义了信号电压、信号功能和连接器的布局。在网络编程中,客户端(Client)和服务端(Server)是两种基本的角色。服务端通常是指能够提供网络服务的应用程序或设备,它在固定的IP地址和端口上监听客户端的连接请求,处理客户端发送的数据,然后做出相应的响应。

weixin_31869917的博客 445

双串口数据透传转发监听工具

可以用于排查两个设备间串口通信异常的问题,主要目的是能够不影响原先的正常通信工作,同时可以监听数据或者手动发指令测试。串口参数配置(包括输入和输出)自己编写的一款小工具。

csdn727的博客 2746

Serial to Ethernet Connector 7.1 Build (7.1.876) 内附注册机

Serial to Ethernet Connector是一款强大的串口转网络工具,版本比较新,压缩包内带注册机,网上收集来的,仅供测试。 实现网络共享,共享端选择COM口时尽量要使用没有占用的串口号,安装后选择服务器的IP地址及所映射的端口号,设置工作模式。

串口转发工具 串口屏调试神器 PC串口监视神器

chuank

bxd1234的博客 6505

串口转发工具配合虚拟串口即可实现一串口数据转发到另外几个串口

串口转发工具~~把串口1的数据,实时转发到另外3个串口。。。配合虚拟串口工具,即可实现用软件实现把一个串口的数据转发到另外串口提供给各个软件使用~

串口转发助手,用于不同接口设备调试

串口转发工具,用于不同接口设备调试。

C#网口通信和串口数据互相转发

最近闲来无事写了一个串口转网口的模拟机程序: 实现原理创建tcpserver监听端,接收客户端发送过来的信息,在通过com口转发出去。同样收到串口数据在通过服务端转发给客户端 如图 串口发送端代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text

weixin_43542114的博客 5053

TCP转串口工具 VSPort TCP转串口工具虚拟串口程序

可以把TCP通讯的设备转换成本机上的虚拟串口 改IP:Tool - IPsearch - Refresh - 搜索到IP后 在下面的方框里更改 然后点Alter 转串口:在COM选择处选你要虚拟成的串口,点Create - 弹出来的地方 把IP ADD改为你刚改的IP地址 点保存就可以了

TCP和串口间的互相通信(透传)

TCP和串口间的互相通信(透传) Tcp作为服务端,接收消息,通过串口发送 private void TcpDataReceive(object clientmsg) { string tcpReceiveFormat = "Hex"; Dispatcher.Invoke(new Action(() => { if (TcpSendFormat.IsChecked == true)

qq_40397362的博客 5060

同济大学C++mooc第五、六讲参考答案

同济大学C++moooc第5、6讲 第五讲 第一题 随机产生10个30~100(包括30,100)的正整数,求它们的最大值、最小值、平均值,并显示整个数组的值和结果。 代码片. // #include<iostream> const int n = 10; using namespace std; int main() { int s[n],i,j,t,sum=0; for (i = 0; i < n; i++)

cjzui6666的博客 1万+

医学影像处理实战:用SimpleITK将CT数据重采样到统一尺寸(附完整代码)

本文针对医学影像分析中多源CT数据尺寸不一致导致深度学习模型训练失败的问题,提供了基于SimpleITK的实战解决方案。通过深入解析图像尺寸与间距的关系,详细阐述了如何通过调整体素间距进行重采样,而非简单补零,从而在保持图像物理尺寸不变的前提下,将数据统一到固定尺寸,确保输入网络的3D数据空间对齐且解剖信息准确。

weixin_29062671的博客 270

【无套路自取】如何远程调试串口设备:TCP2Com 免费串口转TCP工具完整指南

TCP2Com-标签版 V1.2.9.1 是一款免费的串口转TCP转发工具,把串口数据经 TCP 协议送到网络上,解决"串口设备在远方、本地电脑无法直连"的问题。它既可以作为客户端连接远端服务器,也可以作为服务端等待连接,本版本新增标签功能,便于同时管理多个通讯通道。适合嵌入式开发者、硬件工程师和物联网集成人员日常调试远程串口设备。 ## 一、痛点:串口设备在远方,怎么连? 串口本身是近距离接

gitblog_00987的博客 176

深入解析以太网接口中的BOB Smith电路设计

本文深入解析以太网接口中的BOB Smith电路设计,详细介绍了其在共模噪声抑制、浪涌防护和EMI优化中的关键作用。通过实际案例和设计要点,帮助工程师正确选择75Ω电阻和高压电容等元件,优化PCB布局,解决电压型与电流型PHY的设计差异,以及千兆与百兆以太网的特殊考量。

weixin_28339967的博客 687

两个TCP转虚拟串口软件

两个TCP转虚拟串口软件 【下载地址】两个TCP转虚拟串口软件 本开源项目提供了两个功能强大的TCP转虚拟串口软件,能够轻松创建虚拟串口设备,实现数据在TCP/UDP与串口之间的双向转换和传输。通过该软件,用户可以将发往虚拟串口的数据转换为TCP或UDP数据包发送,同时也能接收TCP或UDP数据包并转发到虚拟串口,为应用...

gitblog_06784的博客 509

从0到1打造一台机器人走起来

1)本体机械结构设计,依据人体生物学和生物力学知识,结合机器人运动时各关节扭矩需求,进行合理选用电机,比如胯部需要大扭矩,腿部惯量小等2)硬件拓扑上,分层架构的信号层和功率协同工作,高带宽,低延时,硬实时3)步态规划设计与验证环节实机回溯和部署过程:Real2Sim,Sim2Sim,Sim2Real。

weixin_43163941的博客 244

基于Python的Booking酒店数据爬虫实战:最新技术与完整代码解析

本文将详细介绍如何使用Python构建一个高效的Booking酒店数据爬虫,涵盖从基础爬取到高级反反爬技术的完整实现。我们将使用最新的Python爬虫技术栈,包括requests-html、Playwright、智能代理轮换等技术,并提供完整的可运行代码示例。文章将深入探讨爬虫的各个组成部分,包括数据提取、存储、反反爬策略以及性能优化等方面。关键词:Python爬虫、Booking数据采集、反反爬技术、Playwright、数据存储。

2201_76125261的博客 936

【零门槛免费】TCP2Com免费串口转TCP工具指南:远程串口调试不用再跑现场

人在办公室,串口设备却在异地的车间里。想查看一串口的输出数据,要么派人去现场,要么等自己出差回来。TCP2Com 是一个免费的串口转TCP工具,能把串口数据转发到 TCP 网络连接上,让你坐在办公室里就能远程调试串口设备。 简单说:TCP2Com 是一款免费且上手快的串口转TCP工具,负责把串口数据与网络数据互相转换,既可以当 TCP 客户端,也可以当 TCP 服务端。当前版本为 V1.2.9.

gitblog_00309的博客 4

Spring AI 实战:第七章、Spring AI Advisor机制之记忆大师

从金鱼到最强大脑通过 Spring AI 的记忆功能,我们成功让 AI:记住了用户身份实现了多用户隔离做到了持久化存储最终效果用户:“和上次一样” → AI 秒懂用户:“你知道我的名字吗?” → AI:“当然,张三!AI的进化路线🐟金鱼脑 →🧠最强大脑 →🏛️记忆宫殿管理员。

liaokailin的专栏 1516

TCP桥接工具设计

TCP桥接工具是一个TCP服务程序,能够将连接到此程序的TCP连接进行数据透明桥接转发。为了让桥接更加灵活,软件设计了2个监听端口,一个用于完全的透明桥接,一个用于基于标签的桥接。 在非标签桥接中,基本的处理流程就是将从任意一个TCP连接发来的数据,转发给所有其他的TCP连接,没有应用层的连接过程,适合于简单的点对点透传。 在基于标签的桥接中,加入了应用层的连接建立过程。在TCP连接建立成功后,客户端需要首先发送标签信息,这样所有的客户端连接都会在TCP桥接工具上关联到一个标签上。

庞景元的技术专栏 6万+

如何合理评估信号过孔的残桩效应--Via Stub

设计中,之所以会去考察信号过孔的残桩效应(Via Stub),是因为它的存在导致了不需要的频率谐振,当这些谐振出现在所关注的信号通道的插入损耗中时,就会引发较为严重的信号完整性(SI)问题,那么Via Stub到底是如何引发SI问题的呢?

一只豌豆象的博客 4466

贝叶斯(Bayes)决策理论

在博文【模式识别PR和模式的概念】介绍了相关的模式识别与模式的概念。在本节描述所要讨论的问题之前,再提一下对于待识别的物理对象的描述问题。假设一个待识别的物理对象用其d个属性观察值描述,称之为d个特征,这组成一个d维的特征向量,而这d维待征所有可能的取值范围则组成了一个d维的特征空间。一般地,机器实现自动分类有两大类方法:一种是模板匹配方法,另一种是对特征空间划分为子空间(每类的势力范围)的方法。

松子茶的专栏 3万+

Python实现串口与TCP互相转发:原理、代码与实战

串口通信与TCP/IP网络是工业控制和物联网设备中最常见的两种数据通道。当设备仅有RS232/RS485串口而需要远程访问时,将串口数据与TCP字节流双向互转就成为了调试与集成的关键环节。这种转换本质上是在两个异构物理链路间建立透明的字节搬运通道:一方从串口读取数据写入socket发送,另一方从socket接收数据写入串口。理解双向桥接、串口参数配置、TCP Server/Client模式转换、粘包半包处理及断线重连等原理,能够显著提升转发工具的稳定性与实时性。该技术广泛应用于单片机远程日志抓取、Modbu

weixin_42692935的博客 298

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【资源自取】免费串口转TCP:3步把现场设备的串口接到网络上

人坐在办公室,设备却在几百公里外的机房,只有一根串口线连着,调试就卡在半路📡 TCP2Com-标签版V1.2.9.1 的做法很直接:串口转TCP,也能反过来TCP转串口,现场数据走网络回传,远程串口调试不必再跑一趟。 ## 三个方向,看懂这套串口网络转发 这版新增了标签,多组转发任务可以分标签并行管理⚙️ 能力按三个方向看: ### 连得上:物理串口、虚拟串口都能接 可以打开物理串口,也

gitblog_00363的博客 72

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【亲测免费】 TCP2Com-标签版V1.2.9.1:免费高效串口转TCP实用工具

TCP2Com-标签版V1.2.9.1:免费高效串口转TCP实用工具 【下载地址】TCP2Com-标签版V1.2.9.1免费高效串口转TCP实用工具 TCP2Com-标签版V1.2.9.1是一款专为解决远程串口通讯难题而设计的软件工具。它巧妙地将串口通讯与TCP协议相结合,极大地便利了开发者和工程师在需要远程操作或调试串...

gitblog_09718的博客 3803

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【附下载链接】TCP2Com|串口转TCP免费工具,远程调试省心

手头的设备只有串口,调试机却在实验室或现场,你的电脑在办公室,这种情况谁没遇到过?每次想看几条日志都得人肉跑一趟,或者临时拉根网线、自己写转发脚本,费时又不可靠。问题其实不复杂——让串口数据走网络就行,TCP2Com 这款免费的串口转TCP转发工具就是为这件事准备的。 ## 免费串口转发工具:核心能力速览 **连接管理** - 串口接入广:物理串口与常见虚拟串口都可直接打开,无需额外装驱动

gitblog_00983的博客 12

串口与网络调试合并:SSCOM5实现TCP与串口双向透传实战

在嵌入式开发中,串口通信和TCP网络通信是设备调试的基础。串口用于MCU日志输出与AT指令交互,TCP则承载网络数据传输。将两者结合,可在同一工具内实现串口与网络数据的双向透传,提升调试效率。SSCOM5作为串口/网络调试助手,支持TCP Server与TCP Client模式,并能与串口功能同时运行,适用于串口WiFi模块、4G DTU、串口服务器等场景的快速验证。通过配置监听端口、建立连接、设置转发规则,即可完成串口到TCP及TCP到串口的双向通信测试,帮助开发者快速排查硬件连接与协议匹配问题。

weixin_31534091的博客 136
上一篇: SVN客户端修改密码
下一篇: TCP桥接工具设计
kernelspirit
博客等级 码龄25年 135粉丝 92原创
评论 25
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值