zoukankan      html  css  js  c++  java
  • 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)

     

  • 相关阅读:
    11. Container With Most Water
    9. Palindrome Number
    375. 猜数字大小 II leetcode java
    leetcode 72 编辑距离 JAVA
    73. 矩阵置零 leetcode JAVA
    快速排序 JAVA实现
    63. 不同路径 II leetcode JAVA
    重写(override)与重载(overload)
    62 不同路径 leetcode JAVA
    leetcode 56 合并区间 JAVA
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/14881107.html
Copyright © 2011-2022 走看看