vb.net用socket发送大量数据给单片机stm32F4,速度只有3M字节/秒,有什么办法可以提高到10M字节/秒吗

wuganxiu 2020-05-02 09:37:42
vb.net用socket发送大量数据给单片机stm32F4,速度只有3M字节/秒,有什么办法可以提高到10M字节/秒吗,因为我也一个单片机发,一个单片机收,速度可以做到10M字节/秒,单片机接收是可以处理过来的,网络方面需要怎么配置,这是我的上位机代码
Imports System.Net.Sockets
'使用到TcpListen类
Imports System.IO
'使用到StreamWriter类
Imports System.Net
'使用IPAddress类、IPHostEntry类等
Imports System.Threading
Public Class Form1
Private swWriter As StreamWriter
'用以向网络基础数据流传送数据
Private nsStream As NetworkStream
'创建发送数据的网络基础数据流
Dim tcpClient1 As TcpClient
'通过它实现向远程主机提出TCP连接申请
Private tcpConnect As Boolean = False
'定义标识符,用以表示TCP连接是否建立
'Private s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' Dim bytes(1024) As Byte ' 用来存储接收到的字节
' Dim ss As Socket = s.Accept() '若接收到,则创建一个新的Socket与之连接
Dim fa(0 To 29200 - 1) As Byte
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ipRemote As IPAddress
Dim tcpClient As TcpClient
Try
ipRemote = IPAddress.Parse(TextBox1.Text)
Catch
MessageBox.Show("输入的IP地址不合法!", "错误提示!")
Return
'判断给定的IP地址的合法性
End Try
Try
tcpClient = New TcpClient(TextBox1.Text, 8088)
'对远程主机的8000端口提出TCP连接申请
nsStream = tcpClient.GetStream()
'通过申请,并获取传送数据的网络基础数据流
swWriter = New StreamWriter(nsStream)
'使用获取的网络基础数据流来初始化StreamWriter实例
Button1.Enabled = False
Button2.Enabled = True
tcpConnect = True
StatusBar1.Text = "已经连接!"
Catch
MessageBox.Show("无法和远程主机8089端口建立连接!", "错误提示!")
Return
End Try
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim i As Integer
Dim a As Byte = 1
' Dim tcpClient As TcpClient


For i = 0 To 29200 - 1
fa(i) = 3
Next
Call sample0()


End Sub

Private Sub Form1_Disposed(sender As Object, e As System.EventArgs) Handles Me.Disposed
If tcpConnect Then
swWriter.WriteLine("STOP")
'发送控制码
swWriter.Flush()
'刷新当前数据流中的数据
nsStream.Close()
swWriter.Close()
'清除资源 ( )
End If
tcpClient1.SendBufferSize = 29200
If Disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(Disposing)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
tcpClient1.SendBufferSize = 29200
End Sub



Sub sample0()
Dim sample0_Thread As New Thread(AddressOf sample0_printI)
tcpClient1 = New TcpClient

tcpClient1.SendBufferSize = 29200
sample0_Thread.Start()
TextBox3.Text = tcpClient1.SendBufferSize
' Console.Write("End")
End Sub

Sub sample0_printI()
Dim a As Integer = 1
Try
Do

nsStream.Write(fa, 0, 29200)
swWriter.Flush()
Loop While a = 1
Catch
MessageBox.Show("无法和远程主机8089端口建立连接!", "错误提示!")
Return
End Try
End Sub

End Class
...全文
224 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2020-07-01
  • 打赏
  • 举报
回复
同时也看对方的接收速度,如果对方不及时从缓冲区移除数据,那么tcp会发等待的。(没有ack回复我得等,或者重新发,或者error) 如果你理解不了,请看下面得文章 TCP/IP之TCP协议(3):流量控制(滑动窗口协议) https://blog.csdn.net/wbw1985/article/details/4879224
wanghui0380 2020-07-01
  • 打赏
  • 举报
回复
3M/s其实已经OK 百兆上行顶破天就5M/s,下行10M/s
wanghui0380 2020-07-01
  • 打赏
  • 举报
回复
这个问题一直如此啊,来回的问。 1.速度多快其实不是你能控制的。你只是往发送缓冲区写数据。 2.发送数据其实是系统底层接管的 所以能多快起决定意义的物理带宽,物理网卡,以及对方的接收速度(因为你实际发送对方也不是立刻收的,他会先到接收缓冲区
wurst115 2020-07-01
  • 打赏
  • 举报
回复
这已经火力全开了
【顶级EI完美复现】电力系统碳排放流的计算方法【IEEE 14节点】(Matlab代码实现)内容概要:本文介绍了基于IEEE 14节点电力系统的碳排放流计算方法,并提供了Matlab代码实现,属于顶级EI期刊级别的研究成果复现。该方法通过建立电力系统中各节点的碳排放流动模型,结合潮流计算与电源出力特性,量化不同机组和线路的碳排放责任,进而实现对电力系统低碳运行的评估与优化。文中详细阐述了算法原理、数学模型构建及仿真步骤,适用于电力系统低碳化分析与碳足迹追踪研究。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及从事能源系统低碳化研究的专业技术人员,尤其适合致力于高水平论文复现与算法开发的研究者。; 使用场景及目标:①用于电力系统碳排放流的精确建模与可视化分析;②支撑“双碳”背景下电网低碳调度、绿色电力溯源与碳配额分配等应用场景;③为撰写高水平学术论文(如EI/SCI)提供可复现的技术路径与代码基础。; 阅读建议:建议读者结合IEEE 14节点系统标准数据,逐步运行并调试所提供的Matlab代码,深入理解碳流分配逻辑与矩阵运算实现方式,同时可拓展至其他节点系统以验证算法通用性。
基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置和速度的精确估计与控制。文中结合嵌入式开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现与调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备一定电力电子、自动控制理论基础和嵌入式开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理与实现方法;②学习如何在STM32平台上进行电机控制算法的移植与优化;③为开发高性能、低成本的电机驱动系统提供技术参考与实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型与实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。

16,719

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧