CMSIS-DRIVER系列(3)_ ETH配置

前言

专注CMSIS标准接口,封装各类驱动。
由于工作原因,文章会发的比较简单,如果有遇到问题的可以留言,欢迎交流。
今天聊的以太网会稍微复杂一点,里面封装了TCP的服务器和客户端,也封装了UDP协议。
另外今天上传的以太网是基于公司的项目实现的,还没来得及调试STM32F407的板子,后续有空了会补上。

一、ETH移植

以太网我们首先要明白它主要分为两部分,MAC和PHY,绝大多数的芯片是不包含PHY功能的。所以我们需要外部连接一个PHY芯片,在CMSIS中已将主流芯片进行了封装。
开始正题,和前几个系列一样,首先RTE选择,选择ETH MAC(下图11-1) 和 ETH PHY,在PHY选择时要选择对应芯片(下图11-2),同时在network配置中将Interface接口设置为1(下图12-1),同时Socket选择TCP和UDP(下图12-2)。
配置好后加载bsp_cms_eth.c和bsp_cms_eth.h文件
在这里插入图片描述
在这里插入图片描述

在CMSIS_DRIVER对应的芯片下右键(1),按照原理图定义ETH_PHY_ADDR地址(2,3),PHY_ADDR一定要按照各自项目进行原理图读取,同时定义ETH_PHY_ADDR=项目里的ADDR,不然初始化会失败。
在这里插入图片描述
选择RTE_Device.h配置以太网针脚(1)。
在这里插入图片描述
代码实现部分很简单,以太网的封装主要包括三部分,TCP服务器、TCP客户端以及UDP。每一种套接字对应相应的初始化方式。在初始化套接字之前,需要对本地以太网进行基本定义,主要包括IP、MASK、GW、以及MAC(1)。其后要定义对应的回调函数(2),该函数会在接收到数据后自动进行调用,在回调函数中,直接复制对应数据,不要做其他任何操作。其后对相应的套接字进行初始化即可(3)。
在这里插入图片描述

回调函数可以直接对对应的套接字进行数据复制,其后根据任务流程开启任务线程,在线程中进行数据处理及收发。每一种类型有固定的收发函数。具体内容可以参考代码。
在这里插入图片描述在这里插入图片描述

总结

相比LWIP,CMSIS的代码更简洁。同时执行与CAN、串口等方式相同。大家可以下载以下源码研究一下。GitCode
源代码,资源下载(需积分)
下载源码

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值