首页 > 其他分享 >嵌入式※~CH395Q-UDP

嵌入式※~CH395Q-UDP

时间:2024-10-21 09:49:22浏览次数:3  
标签:多播 UDP 地址 嵌入式 MAC 过滤 模块 CH395Q

我自己的原文哦~ https://blog.51cto.com/whaosoft/11683296

网络芯片CH395Q -模块使用Socket0作为UDP组播(多播)通信

这里演示一下模块使用Socket0作为UDP组播(多播)通信

提醒:无论是SPI,USART,并口,程序操作步骤都是一样的!

只是不同的接口发指令发给模块,然后用不同的接收接收数据而已.

测试本节代码(STM32F103xxxx)
1.用户可以使用杜邦线根据自己的情况设置和连接引脚

2,注意!

要想模块使用SPI通信,模块的TX引脚需要在模块重启之前设置为低电平.

上面的引脚分配把模块的TX引脚接到了单片机的PA3上,也就是串口2的RX上,如果用户使用了串口2,请注意!

3.把模块用网线和路由器或者交换机(和上位机在同一个局域网下)

 注意,连接路由器或者交换机的时候是连接其LAN口.  

4.设置多播地址,多播的目的端口号,本地端口号

注:下面还有个广播IP,255.255.255.255 ,是因为执行多播通信需要把UDP的目的地址配置为广播IP

多播MAC地址是为了MAC过滤,后面会讲,用户不需要设置,默认不过滤MAC

5.编译下载到单片机

正常情况会打印模块的IP地址等信息

6.打开电脑端网络调试助手,并配置UDP

 创建以后会每隔一段时间收到单片机控制模块发送的组播信息

7.调试助手发送数据给单片机

单片机程序里面写的是把接收的服务器返回给服务器,并使用串口打印接收的消息

串口会打印上位机的IP地址,本身端口号,还有发送的消息

程序说明
1.初始化UDP

注意: 配置的UDP地址为广播地址: 255.255.255

 2.设置MAC地址过滤

注意:CH395CMDSetMACFilt 函数是设置MAC地址过滤

第一个参数具体含义

我设置的为0x1a, 也就是 0001 1010  意味着不执行MAC过滤

000(保留) 

bit4 = 1(SEND_ENABLE发送使能) 

bit3 = 1(RECV_ENABLE接收使能)

bit1 = 1(RECV_ALL接收所有数据)

whaosoftの开发板商城aiot物联网设备

3,关于MAC过滤,我也没搞明白这个模块咋用

但是这节吧后面地址对应起来,然后设置为MAC过滤模式有效果

 4.因为是局域网,连接了路由器,所以需要启用DHCP

5.每隔一段时间发送一条多播数据出去

 6.在中断检测事件里面处理Socket相关事件(本例中使用的Socket 0)

标签:多播,UDP,地址,嵌入式,MAC,过滤,模块,CH395Q
From: https://blog.csdn.net/weixin_49587977/article/details/143086595

相关文章

  • TCP和UDP的报文格式
    TCP和UDP的报文格式  概要 了解TCP和UDP的报文格式对于网络通信、系统设计、故障排查和安全性等多个方面都非常重要。 一、TCP报文格式(TransmissionControlProtocol) TCP是面向连接、可靠的传输协议,其报文格式较复杂。TCP报文的格式如下:  上图简化如下:|......
  • 详解UDP-TCP网络编程
    目录UDP数据报套接字编程API代码示例--(回显)单个客户端UdpEchoServerUdpEchoClientUdpDictServer(词典)将服务端程序部署到云服务器上TCP流套接字编程API长短链接代码示例--(回显)多个客户端TcpEchoServerTcpEchoClientUDP数据报套接字编程APIDatagramSoc......
  • 痞子衡嵌入式:瑞萨RA系列FSP固件库分析之外设驱动
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是瑞萨RA系列FSP固件库里的外设驱动。上一篇文章《瑞萨RA8系列高性能MCU开发初体验》,痞子衡带大家快速体验了一下瑞萨MCU开发三大件(开发环境e²studio、软件包FSP、评估板EK),其中软件包FSP为何不叫更通......
  • 嵌入式分享合集192~干货篇
    我自己的原文哦~https://blog.51cto.com/whaosoft/12238584一、电子工程师的常用工具  电子工程师是一个对从事集成电路、电子电气设备等相关产品生产、研发工作的技术人员的统称,一般分为硬件工程师和软件工程师。    硬件工程师主要要了解电路方面的知识,知道常用电......
  • UDP协议和TCP协议
    UDP协议:        是一种无连接的、简单的传输层通信协议,它在IP协议(网络层)之上提供服务。特点:无连接:在数据传输前,发送方和接收方之间不需要建立连接,可以直接发送数据。简单:UDP协议头只有8个字节,比TCP协议头简单,因此开销较小。不保证可靠性:UDP不提供数据传输的可......
  • udp协议进行传输
    一、单个用户的连接1.发送端importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;/*1:建立udp的socket服务2:将要发送的数据封装成数据包3:通过udp的socket服务,将数据包发送出4:关闭资源*/publicclassS......
  • XC6SLX25T-2CSG324C,XC6SLX45T-2FGG484I,XC7K70T-3FBG484E4914, XILINX/赛灵思 嵌入式
    Xilinx是一家总部位于美国的半导体公司,成立于1984年。他们的主要产品是可编程逻辑器件(FPGA和SoC)和相关的开发工具。Xilinx的FPGA产品被广泛应用于各种领域,包括通信、数据中心、工业控制、汽车、物联网等。他们的产品具有灵活性高、性能强大和可定制性强等特点。2018年,Xilinx宣......
  • TCP-UDP-Socket调试工具以及使用教程(亲测好用!)
    前言TCP-UDP老程序都不陌生吧,面试常问。所以在网络编程与网络应用开发的过程中,调试是一个至关重要的环节,它帮助开发者确保数据能够准确无误地在不同节点之间传输。尤其当涉及到TCP/IP、UDP等底层网络通信协议时,面对复杂的连接建立、数据流控制及错误处理等问题,拥有一款强大且专业......
  • 嵌入式硬件设计
    1.引言在当今快速发展的科技时代,嵌入式系统已经成为众多应用领域的重要组成部分。从智能家居、物联网设备到汽车电子、医疗仪器,嵌入式系统无处不在。它们以其高效、低功耗和灵活性,满足了现代社会对智能化和自动化的迫切需求。随着技术的不断演进,嵌入式硬件设计也面临着越来越......
  • 嵌入式Linux编程基础 | GCC 静、动态函数库的创建与链接方法
    一、静态库与动态库的区别库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so表示一个命名为libhello的动态库,libhello.a则是一个命名为libhello的静态库。当使用静态库时,连接器找出程序所需的函数,并将其拷贝到可执行文件,一旦链接成功,静态程序库......