为基于 STM32 处理器的板配置 STM32CubeMX 中的以太网选项
要在以基于 STM32 的板为目标的模型中使用以太网(TCP、UDP 或 MQTT)模块,您必须使用 STM32CubeMX 配置以太网选项。STM32CubeMX 是配置工具,它使您能够设置这些协议所需的外设和网络功能。
如果您不熟悉 STM32CubeMX 工具,请参阅 https://www.st.com/en/development-tools/stm32cubemx.html
前提条件
完成以下教程:
配置基于 STM32H7xx 的板
本节介绍如何针对基于 STM32H7xx 的板配置 STM32CubeMX 工程中的以太网选项。
点击启动以在 STM32CubeMX 工具中打开选定 STM32CubeMX 工程。
在 STM32CubeMX 工具中,您可以配置选定 STM32 处理器的外设。
在 STM32CubeMX 工具中,转至 System Core > CORTEX_M7 > Parameter Settings > Cortex Interface settings,并将 CPU ICache 和 CPU DCache 设置为
Enabled
。转至 Connectivity > ETH > Mode,并对 Mode 选择
RMII
。导航到 Configurations > NVIC Settings,并启用参数 Ethernet global interrupt 和 Ethernet wake-up interrupt through EXTI line 86。
转至 ETH > Parameters Settings > Ethernet Configuration,确保 Rx Buffers Address 设置为
0x30040200
。注意
对于基于 STM32H723xx、STM32H735xx、STM32H725xx、STM32H733xx 和 STM32H730xx 的板,请确保将 Rx Buffers Address 设置为
0x30000200
。转至 Middleware > LWIP > Mode,并启用 Mode。
在 Platform settings 中,将 Found solutions 设置为
LAN8742
。转至 File,然后点击 Save Project。
配置基于 STM32F7xx/STM32xx 的板
本节介绍如何针对基于 STM32F7xx 或任何 STM32xx 的板配置 STM32CubeMX 工程中的以太网选项。
点击启动以在 STM32CubeMX 工具中打开选定 STM32CubeMX 工程。
注意
您可以通过类似于基于 STM32F7xx 的板的方式针对基于 STM32F4xx 的板配置以太网选项。
转至 Connectivity > ETH > Mode,并对 Mode 选择
RMII
。导航到 Configurations > NVIC Settings,并启用参数 Ethernet global interrupt。
转至 Middleware > LWIP > Mode,并启用 Mode。
转至 File,然后点击 Save Project。
配置以太网 FreeRTOS 设置
除了上述通用配置外,还要配置以下设置以在使用 FreeRTOS 作为操作系统时启用以太网功能。
打开 IOC 文件并导航到 LWIP > Key Options > Infrastructure - Heap and Memory Pools Options。
将 MEM_SIZE 增大到
10*1024
,并将 LWIP_RAMN_HEAP_POINTER 设置为0x30020000
。如果模型包含更多以太网模块或基于复杂度需要更多内存,请增大这些值。确保值保持在有效范围内。在 IOC 文件中,选择 FreeRTOS。将 Interface 设置为
CMSIS_V2
,然后转至 Tasks and Queues。如果启用了 LWIP,则会自动创建默认任务。确保堆栈大小设置为 256,并可以根据应用程序需求选择增大堆栈大小。转至 Config Parameters 并将 TOTAL_HEAP_SIZE 设置为
30,720
。根据应用程序需求调整堆大小。
另请参阅
使用 STM32CubeMX 和 Simulink 配置基于 STM32 处理器的板 | TCP Receive | TCP Send | UDP Receive | UDP Send | Ethernet