STM32H750XB 网口通信+freertos(STM32cubeIDE)

 基本架构

        stm32网口通信由于单片机资源紧凑,采用lwIP协议栈,是一种阉割版的tcp/ip协议实现,具体网上教程很多,不详细讨论。需要认识到的是,在stm32的网络开发中,由 LwIP(传输层、网络层)+片内eth外设(链路层)+phy芯片(物理层)组成。其中cubemx提供了lwip的实现和部分eth外设(如LAN8742及其家族)的驱动库。

以下是个人理解,欢迎讨论:

        在整个网络通信的链接过程中,可以认为phy芯片仅负责信号交换,eth外设管理物理地址和链路层层封装,LwIP负责网络层封装,启动顺序为: phy芯片复位->网络信号识别->phy芯片获取网络信息并与eth交换->eth处理收发消息内容转交给上层LwIP。

        也就是说当网线连接PC后,PC可以通过ping单片机IP获得延迟信息,说明从pc打phy到单片机eth的通路正常,此时若出现问题,则是应用层代码存在错误。若ping都无法ping通,则说明eth和phy芯片的配置存在问题。

快捷配置

本次开发使用正点原子北极星H750XB开发板,核心板+拓展板(无屏幕

IDE使用stm32cubeIDE开发,其中自带的cubemx(v1.16)进行配置

FreeRTOS

        先打开freeRTOS

        RAM足够就把堆空间拉满

        给SysClock随便选个基础定时器

ETH外设

根据开发板原理图,开发板使用LAN8720 phy芯片,采用RMII通信,选择mode后注意调整引脚,北极星开发板连接的引脚与默认引脚不同,同时要设置引脚速度到最高,并开启eth全局中断

LwIP协议配置

        配置好eth后,LwIP变为可选状态

        使能LwIP后,如果想要在没有路由器的情况下直连其他设备,需要在IPv4-DHCP Options中关闭DHCP服务,并手动设置IP地址到与其他设备(如PC)同一网段下,子网掩码255.255.255.0

        在Platform

### STM32H750VB 示例代码与项目例程 #### FatFS 与 FreeRTOS 集成的 SD 卡示例工程 一个针对 STM32H750VB 微控制器的示例工程已经集成 FatFS 文件系统和 FreeRTOS 操作系统[^1]。此项目旨在演示如何在 FreeRTOS 环境下实现对 SD 卡的读写操作,适合嵌入式系统开发者学习或参考。该项目提供了完整的源代码,并支持通过 FatFS 实现文件系统的管理功能。开发者可以通过以下链接获取该项目: - 项目地址: [https://gitcode.com/open-source-toolkit/77496](https://gitcode.com/open-source-toolkit/77496) #### 网络通信示例工程 另一个示例工程展示了基于 STM32H750XB网口通信功能,同时集成了 FreeRTOS 操作系统[^2]。该工程中定义了网络模块对象的结构体 `net_port` 和初始化结构体 `net_port_InitTypeDef`,用于配置客户端或服务端类型、套接字、网络地址对象以及接收缓存等参数。以下是关键结构体的代码示例: ```c typedef enum { SERVER = 0, CLIENT = 1, net_TYPE_MAX } net_type_e; typedef struct { const void* up; const void* down; } link_t; typedef struct { link_t link; int socket; struct sockaddr_in addr; net_type_e type; char* rxbuf; int rxlen; int buffer_len; struct { uint16_t init : 1; uint16_t error : 1; uint16_t connected : 1; uint16_t reserver : 13; } flags; int precedence; TaskHandle_t thread_handle; } net_port; typedef struct { link_t link; char* ip_addr; int port; net_type_e type; int buffer_len; int precedence; } net_port_InitTypeDef; ``` #### 下载与调试问题解决 如果遇到 STM32H750VB 微控制器程序无法下载的问题,可以参考以下步骤进行解决[^3]: 1. 在 STM32CubeMX 中配置并打开下载口。 2. 硬件上将 BOOT0 引脚拉高。 3. 使用 J-Flash V6.44b.exe 工具连接开发板,并擦除所有芯片内容。 4. 使用 J-Link STM32 Unlock V6.44b.exe 工具解锁芯片。 以上方法可以帮助开发者顺利下载程序到 STM32H750VB 微控制器中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值