11-网络芯片CH395Q学习开发-模块使用Socket0作为UDP组播(多播)通信,MAC地址过滤

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnCH395Q" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

最近感慨的事情

1.关于教育工作者,科技工作者,公务人员

不知为什么,在大众的想法里,教育工作者,科技工作者,公务人员就应该喝米粥吃咸菜!

好久之前的袁隆平老爷子摸车事件,还有现在的戴建业老爷子事件.

对于教育工作者,科技工作者,公务人员他们不是应该让他们过得更好一点吗?

只有让他们过的好,让他们更加的富足,让他们更加的长寿,他们就会对这个社会做出更多的贡献.

教育工作者,科技工作者,公务人员,只要是人家正常的挣钱养家,我才不管人家穿金戴银,只要人家过得开心,我也开心.

评价一个人不要以他个人来看,要以整个社会来看.

2.关于现在的教育

关于孩子的思想道德,人格:

现在的教育一直在改,最近有些地方开始禁止公开学生成绩了.

其实就我的观点重之之重还在于父母和老师.

咱国家的父母大部分认为学校教育是第一教育.其实就整个来看

家庭教育是第一教育,社会教育是第二教育,学校教育是第三教育.

孩子的思想道德,人格大部分是取决于父母!

所以如果你的孩子因为思想道德,人格而出现了各种事情,做父母的应该先好好考虑自己!

关于老师:

老祖宗几千年来就总结了: 师者,传道,授业,解惑者也! 

但是现在看看现在的老师,大部分都只是授业的老师.把第一是传道都给丢了!

前些日子看了个咱国的老师去外国授课,然后有个老师说只要有成绩才能怎么怎么滴. 这老师肤浅!

咱国家的大部分老师有个特点: 现在的老师只是因为当初考试考的好,考到研究生考上博士,是考试考得好的老师但不是真正爱好的老师!

有的网友说中国是培养人才,外国是挑选人才. 其实并不对!

外国才是真正的培养人才! 他们遵循传道,授业,解惑,而且懂得因材施教.

建国初期有好多说得上名字的大家,为啥以后大家就很少了? 所以:很多事情不要怪孩子,怪教育!

说明

这节演示一下模块使用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接收所有数据)

 

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

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

 

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

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

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

 

原文地址:https://www.cnblogs.com/yangfengwu/p/14881107.html