news 2026/9/28 3:50:56

RT-Thread STM32H750 开发板 BSP 上手指南:FANKE FK750M1-VBT6 核心板从烧录到外设驱动

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RT-Thread STM32H750 开发板 BSP 上手指南:FANKE FK750M1-VBT6 核心板从烧录到外设驱动
  • 操作系统
  • 嵌入式
  • 物联网
  • 嵌入式OS
  • RTOS

【免费下载链接】rt-thread

RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/

项目地址:https://gitcode.com/gh_mirrors/rt/rt-thread
点击查看免费下载

本指南以 RT-Thread 开源仓库中的 FANKE FK750M1-VBT6 开发板 BSP 说明 为核心骨架,面向希望在这块基于 Cortex-M7 内核(最高 480MHz、片内 128KB ROM / 1MB RAM、外扩 8MB QSPI Flash)的核心板上快速运行 RT-Thread 并驱动板载资源的开发者。阅读完本文,你将掌握该 BSP 的硬件资源分布、MDK5/IAR/GCC 三种工程的上手流程、ENV 工具配置外设的完整命令链,以及如何绕过 H750 128KB Flash 容量限制的多种方案。

开发板简介与硬件资源

FK750M1-VBT6 是 FANKE 推出的一款基于 ARM Cortex-M7 内核(具体型号为 STM32H750VBT6,rtconfig.h中通过SOC_STM32H750VBT6宏标识)的核心板,最高频率 480MHz,具有 128KB ROM、1MB RAM,外接 8MB QSPI Flash。该 BSP 位于bsp/stm32/stm32h750-fk750m1-vbt6目录,由维护人 NU-LL 提供。

板载资源如下:

  • 外扩 W25Q64,容量 8M 字节(QSPI 接口)
  • 1 个复位按键,1 个用户按键
  • 1 个 BOOT 按键
  • 1 个用户 LED
  • 1 个 Type C 接口
  • 1 个 TF 卡接口
  • 1 个 SPI 液晶和摄像头接口
  • 引出 73 个 IO 口

片内存储与多段 SRAM 布局(源码佐证)

从 board.h 可以看到该 BSP 对芯片存储的精确划分:ROM_START为0x80000000、ROM_SIZE为 128KB;RAM_START为0x20000000(DTCM 区域)、RAM_SIZE为 128KB。而 board.c 中的init_sram()函数(通过INIT_BOARD_EXPORT自动初始化)进一步把 H750 剩余的 RAM 以rt_memheap形式挂载到系统:

内存区起始地址大小
AXI SRAM0x24000000512KB
SRAM10x30000000128KB
SRAM20x30020000128KB
SRAM30x3004000032KB
SRAM40x3800000064KB
Backup SRAM0x388000004KB

这些 memheap 与rtconfig.h中开启的RT_USING_MEMHEAP、RT_USING_MEMHEAP_AS_HEAP、RT_USING_MEMHEAP_AUTO_BINDING配置相配合,允许大块数据(如摄像头图像缓冲)使用 AXI SRAM 等高速内存区域。

系统时钟配置

board.c 中的SystemClock_Config()展示了完整的时钟树:以 HSE 为 PLL 源(PLLM=5, PLLN=192, PLLP=2),将 SYSCLK 提升至 480MHz,同时开启 LSE 供 RTC 使用,并为 USART1/UART4 选择D2PCLK时钟源。该 BSP 的BSP_CLOCK_SYSTEM_FREQ_MHZ在 board.h 中配置为 480。

外设支持情况

本 BSP 目前对外设的支持情况如下:

板载外设支持情况备注
TF Card待支持
QSPI Flash待支持W25Q64JV
OV2640 Camera支持
OV5640 Camera待支持
0.96' LCD待支持160*80
1.14' LCD待支持240*135
1.30' LCD支持240*240
1.54' LCD待支持240*240
1.69' LCD待支持240*280
2.00' LCD待支持240*320
片上外设支持情况备注
GPIO支持
UART支持USART1
SPI支持
RTC支持
USB Device待支持

已支持外设的源码实现

  • SPI LCD(1.30' 240×240,ST7789):驱动位于 drv_lcd_spi.c,lcd_port.h 中定义了LCD_HEIGHT (240U)、LCD_WIDTH (240U);rtconfig.h中通过BSP_USING_LCD_SPI默认开启。驱动以struct drv_lcd_device封装了双缓冲(front_buf/back_buf)与图形设备接口,提供lcd_clear、lcd_drawpoint、lcd_drawline、lcd_copybuffer等绘图 API(见 drv_lcd_spi.h)。
  • OV2640 摄像头:驱动位于 drv_ov2640.c,配合 DCMI 接口采集图像。其头文件 drv_ov2640.h 中声明了丰富的控制接口:ov2640_set_pixformat()(RGB565/JPEG)、ov2640_set_framesize()、ov2640_set_horizontal_mirror()、ov2640_set_vertical_flip(),以及饱和度/亮度/对比度/特效(负片、黑白等)设置函数;默认输出分辨率 400×300(4:3),并由 DCMI 裁剪为屏幕比例显示。
  • 片上 Flash 抽象(FAL):fal_cfg.h 预留了基于 FAL 的分区表——bootloader(onchip 128K)、filesystem(nor 8MB)、fs_qspi(W25Q64_q 8MB),为后续在 QSPI Flash 上实现文件系统与 bootloader 启动做好了铺垫。

使用说明

使用说明分为快速上手与进阶使用两个章节:

  • 快速上手:为刚接触 RT-Thread 的新手准备,遵循简单步骤即可将 RT-Thread 运行在该开发板上并看到实验效果。
  • 进阶使用:为需要在 RT-Thread 上使用更多开发板资源的开发者准备,通过 ENV 工具配置 BSP 可开启更多板载资源,实现更多高级功能。

快速上手

本 BSP 为开发者提供 MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。

请注意!!!

在执行编译工作前请先打开 ENV 执行以下指令(该指令用于拉取必要的 HAL 库及 CMSIS 库,否则无法通过编译):

pkgs --update

这一步会把rtconfig.h中声明的PKG_USING_STM32H7_HAL_DRIVER、PKG_USING_STM32H7_CMSIS_DRIVER、PKG_USING_CMSIS_CORE等软件包从远端拉取到本地packages目录。若不执行,MDK5/IAR/GCC 均会因为缺失 STM32H7 HAL 头文件而编译失败。

硬件连接

使用数据线连接开发板到 PC。使用 usb 转串口工具连接 PA9(USART1_TX)和 PA10(USART1_RX)。串口引脚映射与board.h中BSP_UART1_RX_BUFSIZE/BSP_UART1_TX_BUFSIZE(默认 256 字节)以及rtconfig.h中RT_CONSOLE_DEVICE_NAME "uart1"的配置一致——即系统控制台默认就挂载在串口 1 上。

编译下载

双击project.uvprojx文件,打开 MDK5 工程,编译并下载程序到开发板。若使用 GCC 环境,可在 ENV 下执行scons完成编译;IAR 用户则打开同目录下的project.eww/project.ewp工程。

运行结果

下载程序成功之后,系统会自动运行,LED 闪烁。用户 LED 的驱动逻辑位于 main.c:通过GET_PIN(C, 13)获取 PC13 引脚,先rt_pin_mode(..., PIN_MODE_OUTPUT)配置为输出,再在while循环中以 500ms 间隔交替rt_pin_write输出高低电平实现闪烁——这也是验证 RT-Thread 已正常启动的最直观信号。

连接开发板对应串口到 PC,在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:

\ | / - RT - Thread Operating System / | \ 5.0.0 build Mar 22 2023 00:10:44 2006 - 2022 Copyright by RT-Thread team msh />

msh />提示符出现后即进入 RT-Thread 的 MSH 命令行(finsh 组件在rtconfig.h中默认开启),此时已可以在终端中执行help、list_device等命令查看系统状态。

进阶使用

此 BSP 默认只开启了 GPIO 和串口 1 的功能,如果需使用更多高级功能,需要利用 ENV 工具对 BSP 进行配置,步骤如下:

  1. 在 bsp 下打开 env 工具。
  2. 输入menuconfig命令配置工程,配置好之后保存退出。
  3. 输入pkgs --update命令更新软件包。
  4. 输入scons --target=mdk4/mdk5/iar命令重新生成工程。

menuconfig的菜单结构由 board/Kconfig 定义,其中常用的板级选项包括:

  • BSP_USING_LCD_SPI:开启 1.30' 240×240 LCD(ST7789),会自动连带选中 GPIO、SPI、SPI4(注:当前不支持 SPI TX DMA);
  • BSP_USING_OV2640:开启 OV2640 摄像头,自动连带选中 DCMI、软件 I2C1(SCL/SDA 默认引脚 24/25),I2C 用于 SCCB 总线配置摄像头寄存器;
  • BSP_USING_UART1下的子项:BSP_UART1_RX_USING_DMA/BSP_UART1_TX_USING_DMA(需先开启RT_SERIAL_USING_DMA)、接收/发送缓冲区大小(范围 64~65535);
  • BSP_USING_QSPI:开启 QSPI 总线(需配合 SFUD 使用 W25Q64);
  • BSP_USING_ONCHIP_RTC:开启片内 RTC;
  • BSP_USING_ON_CHIP_FLASH:开启片内 Flash 设备。

重新生成工程后,新开启的外设驱动会自动以INIT_BOARD_EXPORT/INIT_DEVICE_EXPORT等方式在系统启动阶段完成注册,通过 MSH 的list_device命令即可查看新挂载的设备节点。

本章节更详细的介绍可参考 STM32 系列 BSP 外设驱动使用教程。

注意事项(128KB Flash 容量限制与应对方案)

  • 目前仅测试 V1.1 版本硬件,较老的 V1.0 暂未测试。

  • 默认仅开启 LCD 功能,此时生成的固件大小约为 110k 左右,如果开启其他功能固件超过 128k,可以通过如下方式:

    1. H750 实际上可以使用片内 2M RAM,但是 128k 之后 ST 不保证可用性,此时可以:
      1. 在 Keil 中将芯片选为 H743,此时会出现 2MB Flash 的下载算法,选择此下载算法下载程序;
      2. bsp/stm32/stm32h750-weact-ministm32h7xx 目录下会提供一份 H750 的 Keil 内部 RAM 下载算法,可以采用该下载算法。
    2. 通过 bootloader 从片外 QSPI Flash 启动——这一路径与本 BSP 中 fal_cfg.h 预置的bootloader/fs_qspi分区表设计相呼应,可以将应用固件存放在 8MB 的 W25Q64 中运行。

另外,board.c 中预留了ota_app_vtor_reconfig()函数(当前被注释),其将 SCB->VTOR 重定位到0x08020000,正是为 QSPI Flash 启动 / OTA 场景准备的向量表重映射示例,开发者按需取消INIT_BOARD_EXPORT注释即可启用。

  • 调试串口为串口 1,映射说明如下:

    PA9 ------> USART1_TX PA10 ------> USART1_RX

联系人信息

维护人:NU-LL。

进一步阅读

  • STM32 系列 BSP 外设驱动使用教程
  • STM32 系列 BSP 制作教程
  • STM32 系列外设驱动添加指南
  • 操作系统
  • 嵌入式
  • 物联网
  • 嵌入式OS
  • RTOS

【免费下载链接】rt-thread

RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/

项目地址:https://gitcode.com/gh_mirrors/rt/rt-thread
点击查看免费下载

相关推荐

上一篇:游戏上线前的最后一道闸门:在 Claude Code Game Studios 中使用 `/launch-checklist` 完成跨部门发布就绪校验
下一篇:react-map-gl (maplibre) 3D Terrain 实战:terrain、sky 属性与 TerrainControl 构建地形地图

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 3:49:38

设计稿秒变代码!Qoder 配 TaoToken 的 Vibe Coding 实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/28 3:47:59

AI Agent_1 简介 (保姆级完整讲解)

针对新手专属讲解,不跳过任何逻辑、不使用晦涩术语,全文核心公式贯穿到底:AI Agent LLM(大脑) Planning(自主规划) Tool Use(工具执行) Memory(持久记忆&…

作者头像 李华
网站建设 2026/9/28 3:44:36

把 AI 讲给人听,比把 AI 跑通更难:一位工程师的 AI 通识复盘

本文作者反思了技术人讲AI时的困境:懂原理不等于能讲清楚。通过清华大学《人工智能故事书》的启发,提出用16个类比(如“外国人学汉字”“迷雾下山”)将复杂模型转化为可理解的直觉锚点,辅以提示词工程背后的“需求工程…

作者头像 李华