摸着W5500学习计算机网络1——W5500初始化

    有个大神说W5500有官方的库,可以“开箱即用”。可是打开箱子我发现,完全看不懂啊。毕竟不懂计算机网络,里面很多的术语就搞不明白。再打开W5500的数据手册,发现什么MAC、ICMP之类的东西,完全不明白是什么意思。所以我打算学习一下《计算机网络》,边学网络,边用W5500来验证验证,也许是不错的尝试。好的,那就开始吧。

 

刚拿到W5500,看了下手册,发现各种看不懂。不过官方有对应的例程,网上的资源也挺多。就照着官网的网络初始化配置来自己敲一下代码。

虽然是模仿的例程,但是毕竟是自己敲的,和官网的代码还是不一样。作为一个SPI器件,第一步应该就是配置下管脚和SPI,然后测试下SPI的读写是否正常。往芯片的寄存器里面写写值,然后读取看看是否正确。下面就是我的思路:

1、配置下系统时钟,测试看看时钟是否正常

2、初始化了W5500要用到的IO管脚,如CS,RST脚等

3、初始化要用到的SPI

4、写SPI读、写函数

5、写W5500的读、写函数

这上面的4步,都是STM32的常规操作,很多开发板的例程上直接搬过来就能用,关键在于W5500的读写函数上。

先挑个最简单的,看看FDM模式下1字节的写访问:

(PS,W5500的读写有FDM和VDM两种模式。FDM是读写长度固定,VDM是读写长度可变。FDM支持1、2、4字节的读写访问,而VDM支持N字节的读写访问。手册上写了:“一般不提倡使用FDM模式”。我现在感觉操作寄存器的话,用FDM好像也挺好的)

 

这个SPI数据帧首先是2字节的地址段,然后是1个字节的控制段,最后跟一个字节的数据。

我们的函数可以这样写:

这里需要注意的就是控制段。来看看控制段的构成:控制段一共就1字节,8个bit。

这个控制段的高5位,是区域选择位,如果全是0的话,就选择通用寄存器;如果是其他的值,就是对应的相应的SOCRET寄存器。

这是初始化代码:

初始化完成后,可以读一下对应的寄存器,看看值都对不对。还可以用网线和计算机连起来,ping一下W5500的IP地址,看看通不通。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
W5500以太网模块是一种硬件模块,可以通过SPI接口与微控制器进行通信。要初始化W5500以太网模块的UDP功能,需要进行以下步骤: 1. 配置W5500的基本设置:包括设置IP地址、子网掩码、默认网关等网络参数。这些参数可以通过SPI接口的寄存器写入设定值。 2. 配置Socket:W5500具有多个Socket,每个Socket可以同时处理一个连接。通过配置每个Socket的协议(UDP),端口号等信息,来启用UDP功能。 3. 打开Socket:在初始化完成后,通过将相应的Socket打开,使其能够接收和发送数据。 4. 接收数据:通过轮询相应的Socket注册状态,并检查是否接收到了数据包。如果收到数据包,可以将其读取到缓冲区中以供后续处理。 5. 发送数据:将待发送的数据包写入到Socket的发送缓冲区,并通过发送命令启动发送。确认数据发送完毕之后,可以进行后续的处理。 6. 关闭Socket:在完成UDP通信后,可以关闭Socket以释放资源。 在初始化完成后,W5500以太网模块就可以进行UDP通信了。通过读取接收缓冲区中的数据,处理收到的数据包,然后将经过处理的数据写入到发送缓冲区,即可实现UDP通信的基本功能。 需要注意的是,在初始化过程中需要正确配置W5500的网络参数和Socket参数,以使其与网络环境和应用需求相匹配。同时,还需要对错误进行处理和灵活的调试,以确保UDP通信的稳定和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值