# UART_CON_ETH **Repository Path**: wja0607/UART_CON_ETH ## Basic Information - **Project Name**: UART_CON_ETH - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-08 - **Last Updated**: 2026-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STM32F427 LAN8720A UART CAN ETH 这是一个基于 `STM32F427 + LAN8720A` 的串口/CAN 转以太网透传工程。工程已经整理为可直接在 `VS Code` 中打开使用的版本,同时保留了 `CubeMX` 的 `.ioc` 配置文件,方便后续继续维护和重新生成代码。 ## 工程功能 - 支持 `UART2 <-> TCP` 双向透传,默认端口 `1002` - 支持 `UART3 <-> TCP` 双向透传,默认端口 `1003` - 支持 `CAN1 <-> TCP` 双向透传,默认端口 `1004` - 支持 `CAN2 <-> TCP` 双向透传,默认端口 `1005` - 支持通过浏览器访问设备 IP 进入网页配置页面,默认网页端口 `80` - 支持网页修改并保存以下参数到 `Flash`,重启后生效: - 设备 IP 地址 - 子网掩码 - 网关 - UART2 波特率 - UART3 波特率 - UART2 TCP 端口 - UART3 TCP 端口 - CAN1 波特率 - CAN2 波特率 - CAN1 TCP 端口 - CAN2 TCP 端口 - 支持对网页配置参数做完整合法性检查: - 拦截非法 IP 地址 - 拦截非法子网掩码 - 拦截非法网关 - 拦截非法端口和端口冲突 - 网页保存失败时,错误提示会映射到具体错误条目。 ## 通信说明 ### UART 透传 - `UART2` 和 `UART3` 各自对应一个独立 TCP 服务 - 每个串口通道同一时刻只允许一个 TCP 客户端连接 - 串口收到的数据会原样透传到网络侧,网络侧收到的数据会原样发回串口 ### CAN 透传 - `CAN1` 和 `CAN2` 各自对应一个独立 TCP 服务 - 默认 CAN 波特率为 `500 kbps` - 网络侧使用固定 `16` 字节二进制记录格式透传经典 CAN 帧 - 单帧记录格式如下: ```text byte[0] = 0xA5 byte[1] = 0x5A byte[2] = flags bit0: IDE, 0=标准帧, 1=扩展帧 bit1: RTR, 0=数据帧, 1=远程帧 byte[3] = DLC, 范围 0..8 byte[4] = CAN ID[31:24] byte[5] = CAN ID[23:16] byte[6] = CAN ID[15:8] byte[7] = CAN ID[7:0] byte[8] = data[0] ... byte[15] = data[7] ``` ## 默认参数 - 设备 IP:`192.168.2.100` - 子网掩码:`255.255.255.0` - 网关:`192.168.2.1` - Web 配置端口:`80` - UART2 端口:`1002` - UART3 端口:`1003` - CAN1 端口:`1004` - CAN2 端口:`1005` - CAN1 波特率:`500000` - CAN2 波特率:`500000` ## 目录说明 - `Core/` `Drivers/` `LWIP/` `Middlewares/`:工程源码和中间件 - `Debug/`:沿用 `CubeIDE` 生成的 `GNU Make` 构建目录 - `.vscode/`:VS Code 任务、调试和 IntelliSense 配置 - `tools/`:自动查找 STM32 工具链并执行构建/烧录的脚本 - `STM32F427_LAN8720A_UART_CON_ETH.ioc`:CubeMX 工程文件 ## 推荐扩展 - `C/C++` - `Cortex-Debug` - `PowerShell` ## 使用方法 1. 用 `VS Code` 打开当前工程目录 `STM32F427_LAN8720A_UART_CAN_CON_ETH` 2. 安装推荐扩展 3. 按 `Ctrl+Shift+B` 执行 `STM32: Build` 4. 需要下载程序时,运行任务 `STM32: Flash` 5. 需要单步调试时,按 `F5` ## 构建说明 - `tools/build.ps1` 会优先从系统 `PATH` 查找 `make` 和 `arm-none-eabi-gcc` - 如果系统 `PATH` 没配置,它还会继续搜索常见的 `STM32CubeIDE` 和 `STM32CubeCLT` 安装目录 - `tools/flash.ps1` 会自动查找 `STM32_Programmer_CLI.exe` - 如果工具安装在非常规目录,可以设置以下环境变量: - `STM32CubeIDE_DIR` - `STM32CubeCLT_DIR` - `STM32_PROGRAMMER_DIR` ## 默认输出 - ELF:`Debug/STM32F427_LAN8720A_UART_CON_ETH.elf` - MAP:`Debug/STM32F427_LAN8720A_UART_CON_ETH.map` - LIST:`Debug/STM32F427_LAN8720A_UART_CON_ETH.list`