littlebot
Published on 2025-04-16 / 0 Visits
0

【源码】基于STM32和ESP32的CAN总线网络系统

项目简介

本项目构建了一个基于STM32和ESP32的CAN总线网络系统。其中,STM32_Master承担发送CAN消息的任务,ESP32_Slave负责监听并处理接收到的消息,二者通过CAN总线进行通信。系统还配备了OLED显示屏用于信息展示,利用W25Q64 Flash存储器存储相关参数。此外,借助Qt框架开发了客户端GUI应用,方便用户与系统交互。

项目的主要特性和功能

STM32_Master

  • 以STM32F103C8t6(Black Pill板)为核心,作为CAN总线主节点,周期性发送CAN消息。
  • 搭载0.96寸、128x64的SSD1306 OLED显示屏(SPI接口),实时显示相关信息。
  • 通过TJA1050收发器实现CAN接口通信。
  • 运用8MB的W25Q64 Flash存储器(SPI接口),存储CAN通信速度和页号等参数。

ESP32_Slave

  • 采用ESP32(DevKitC板)作为CAN总线从节点,接收并处理来自STM32_Master的CAN消息。
  • 配备同样规格的SSD1306 OLED显示屏(I2C接口),展示系统运行状态。
  • 借助TJA1050实现CAN接口通信。
  • 支持WiFi连接,可与客户端进行网络通信。

客户端GUI应用

  • 基于Qt框架开发,有直观的图形用户界面。
  • 支持发送设置日期、CAN通信速度、Flash页号等命令。
  • 能格式化W25Qxx Flash的特定扇区。

安装使用步骤

硬件准备

  • 准备STM32F103C8t6(Black Pill板)和ESP32(DevKitC板)。
  • 确保CAN接口、OLED显示屏、Flash存储器等硬件设备连接无误。

软件准备

  • 安装STM32CubeMX、System Workbench for STM32、esp-idf、Qt Creator(4.11.0/4.11.1)和Qt framework(5.12.1)。
  • 准备好包含项目配置信息的XML文件。

代码编译与部署

  • 用STM32CubeMX和System Workbench for STM32编译STM32_Master的代码,通过stm32flash工具将程序烧录到STM32F103C8t6。
  • 使用esp-idf编译和部署ESP32_Slave的代码。
  • 用Qt Creator编译客户端GUI应用。

运行测试

  • 给硬件设备上电,STM32_Master开始周期性发送CAN消息,ESP32_Slave接收并处理消息。
  • 启动客户端GUI应用,发送命令并接收系统响应,验证系统功能。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】