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)

     

  • 相关阅读:
    UVA 11859
    [OpenGL]OpenGL坐标系和坐标变换
    树状数组
    编程算法
    乞讨 间隔[a,b]在见面p^k*q*^m(k&gt;m)中数号码
    解析Android的 消息传递机制Handler
    Atitit.故障排除系列---php 计划网站数据库错误排除过程
    Remove Element
    [Angular Directive] Write a Structural Directive in Angular 2
    [Compose] 18. Maintaining structure whilst asyncing
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/14881107.html
Copyright © 2011-2022 走看看