我自己的原文哦~ 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