【上下位机通信】:下位机(STM32)通过网口(DM9000之类的.)向上位机PC发送数据。求上位机例子程序~

【上下位机通信】:下位机(STM32)通过网口(DM9000之类的.)向上位机PC发送数据。求上位机例子程序~,第1张

 用 socket  类  udp  tcp       我这 给你个  最简单的 例子  udp

服务器端

Imports SystemNetSockets

Imports SystemNet

Module socketsever

  Sub main()

      startserver()

    End Sub

  Private Sub startserver()

      '创建服务器端的socket

      Dim sServer As New Socket(AddressFamilyInterNetwork, SocketTypeDgram, ProtocolTypeUdp)

      Dim myip As IPAddress

      '制订本地回路的ip地址

      myip = IPAddressParse("1013115105")

      '设置服务器端口号

      Dim sServerep As New IPEndPoint(myip, 2001)

      '设置客户端的端口号

      Dim clientep As New IPEndPoint(myip, 2002)

      '将端口与socket绑定

      sServerBind(sServerep)

      While True

          Try

              Dim bytes(100) As Byte

              '等待客户端的请求

              sServerReceiveFrom(bytes, clientep)

              Dim str As String = SystemTextEncodingASCIIGetString(bytes)

              '将字符转化成大写

              str = strToUpper

              bytes = SystemTextEncodingASCIIGetBytes(str)

              '返回结果

              sServerSendTo(bytes, clientep)

          Catch e As SocketException

          End Try

      End While

  End Sub

End Module

客户端

界面  和程序

Imports SystemNetSockets

Imports SystemNet

Public Class Form1

  Inherits SystemWindowsFormsForm

  Private Sub bsend_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles bsendClick

      '创建客户端的socket

      Dim cClient As New Socket(AddressFamilyInterNetwork, SocketTypeDgram, ProtocolTypeUdp)

      '指定本地回路的ip地址

      Dim myip, myip1 As IPAddress

      myip = IPAddressParse("1013115105")

      myip1 = IPAddressParse("1013115136")

      '设置服务器端口号

      Dim Serverep As New IPEndPoint(myip1, 2001)

      '设置客户端的端口号

      Dim clientep As New IPEndPoint(myip, 2002)

      '将端口与socket绑定

      cClientBind(clientep)

      Try

          Dim str As String = TextinputText

          Dim bytes() As Byte = SystemTextEncodingASCIIGetBytes(str)

          '向服务器发出请求

          cClientSendTo(bytes, Serverep)

          Dim bytes2(100) As Byte

          '接受服务器的响应结果

          cClientReceiveFrom(bytes2, Serverep)

          str = SystemTextEncodingASCIIGetString(bytes2)

          '将结果显示在文本框中

          TextdisplayText = TextdisplayText & vbNewLine & str

      Catch er As SocketException

          MsgBox(erToString)

      End Try

      cClientClose()

  End Sub

End Class

下位机(比如单片机)通过串口线(比如rs232)发送数据给上位机(pc),下位机部分主要程序就是将数据按照一定的封装格式打包好数据,然后配置好串口相关参数(比如波特率,校验位什么的),上位机需要有软件将串口获得的数据再根据封装格式还原成你需要的数值,这就是整个过程了。

兄弟,下面是我自己写的,希望给你帮助,把数据用send_one_uart()这个函数直接发送到串口就行了!最后求采纳,哈哈!

//-----头文件

#include<reg52h>

//-----定义全局变量

unsigned

char

temp;

/

函数名称:

uart_init

功能描述:

串口初始化函数

入:无

出:

明:

/

void

uart_init(void)

{

scon

=

0x50;

//-----scon:

模式

1,

8-bit

uart,

使能接收

tmod

|=

0x20;

//-----tmod:

timer

1,

mode

2,

8-bit

重装

th1

=

0xfd;

//-----th1:

重装值

9600

波特率

晶振

110592mhz

tr1

=

1;

//-----tr1:

timer

1

打开

es

=

1;

//-----打开串口中断

ea

=

1;

//-----打开总中断

}

/

函数名称:

sendbyte

功能描述:

发送字节函数

入:无

出:

明:

/

void

sendbyte(unsigned

char

dat)

{

sbuf

=

dat;

while(!ti);

ti

=

0;

}

/

函数名称:

sendstr

功能描述:

发送字符串函数

入:无

出:

明:

/

void

sendstr(unsigned

char

s)

{

while(s!='\0')

{

sendbyte(s);

s++;

}

}

/

函数名称:

main

功能描述:

主函数

入:无

出:

明:

/

void

main

(void)

{

uart_init();

//-----串口初始化

while(1)

{

if(temp=='h'&&'i')

{

temp=0;

sendstr("hello");

}

}

}

/

函数名称:

uart_ser

功能描述:

串口中断服务子函数

入:无

出:

明:

/

void

uart_ser

(void)

interrupt

4

//-----串行中断服务程序

{

if(ri)

//-----判断是接收中断产生

{

ri=0;

//-----标志位清零

temp=sbuf;

//-----读入缓冲区的值

}

}

上位机是指人可以直接发出 *** 控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。系统中起主控,主要作为系统的规划控制,属于决策层。

下位机是指直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。具体执行层,主要完成系统规划层下达的任务。

以上就是关于【上下位机通信】:下位机(STM32)通过网口(DM9000之类的.)向上位机PC发送数据。求上位机例子程序~全部的内容,包括:【上下位机通信】:下位机(STM32)通过网口(DM9000之类的.)向上位机PC发送数据。求上位机例子程序~、上位机发给下位机数据问题,到底怎么发送的,这是下位机的,、谁有上位机与下位机的串口通讯代码(C语言的)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9287616.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存