logo资料库

STM32CubeF4使用入门.pdf

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
UM1730 引言 STM32CubeF4 使用入门 山西大学电子信息工程系王晓峰 Wangxiaofeng@sxu.edu.cn STMCube 是由意法半导体原创倡议,旨在通过减少开发负担,时间和费用来为开发者 提供轻松的开发体验。STMCube 覆盖了 STM32 全系列。 STM32Cube 版本 1.x 包括: 1、STM32CubeMX,一个图形软件配置工具,允许通过图形化向导来生成 C 初始化代 码。 2、一 个 广 泛 的 嵌 入 式 软 件 平 台 , 按 照 产 品 系 列 提 供 ( 例 如 STM32CubeF4 对 应 STM32F4 系列)。此平台包括 STM32Cube HAL(一个 STM32 的硬件抽象层,确保 STM32 之间最大的可移植性),再加上配套的中间件(RTOS,USB,TCP/IP 和图形)。所有嵌入式 软件组件都提供完整的例程。 本用户手册描述了如何开始使用 STM32CubeF4 固件包。 第一部分,描述了 STM32CubeF4 固件包的主要特性,STMCube 的首创倡议。 第二部分和第三部分提供了一个 STM32CubeF4 架构概览和固件包结构。
1 STM32CubeF4 主要特性 STM32CubeF4 集合了所有开发 STM32F4 应用嵌入式软件组件。依照 STMCube 倡议, 这些组件具有高度的可移植性,不止在 STM32F4 系列中,也包括所有 STM32 系列。 STM32CubeF4 高度兼容 STM32CubeMX,STM32CubeMX 允许用户生成初始化代码。 包内包括一个底层硬件抽象层(HAL),HAL 覆盖了微控制器硬件,集成了广泛的例程, 可运行在意法半导体的开发板上。为了用户便利,硬件抽象层为开源 BSD 许可协议。 STM32CubeF4 包含了一套中间件组件,带有对应的例程。它们具有非常自由的许可证 条款: 1、CMSIS-RTOS 贯彻了 FreeRTOS 的开源解决方案 2、TCP/IP 协议栈基于开源的 LwIP 解决方案 3、FAT 文件系统基于开源的 FatFs 解决方案,支持 NAND 闪存访问 4、完整的 USB 主从设备协议栈支持。 - 主类:HID,MSC,CDC,Audio,MTP - 设备类:HID,MSC,CDC,Audio,DFU 5、图形 - STemWin,一个专业的图形栈解决方案,提供二进制格式支持,并且基于我们伙 伴的 SEGGER emWin。STM32CubeF4 包内提供所有这些中间件的实现示例。 - LibJPEG,一个开源的工具,可以再 STM32 实现 JPEG 图片的编码和解码。 6、SSL/TLS 安全层,基于开源的 PolarSSL STM32CubeF4 包括在 STM32Cube 包内。请注意 STM32Cube 将逐步完善并覆盖 STM32 系列。
2 STM32CubeF4 建构概览 STM32CubeF4 固件解决方案基于并围绕三个独立的层,这些层可以容易的互动,如 图 1 所示: 层 0:此层被分为三个子层。 1、板级支持包(BSP):此层提供一组硬件硬件上的硬件相关 API 接口(音频编码,I/O 扩 展,触摸屏,SRAM 驱动,LCD 驱动等)和以下两部分: - 组件:外部设备相关驱动,但不与 STM32 相关,组件驱动提供特殊的 API 接口到 BSP 驱动的外部组件,并可被接口到任何板上。 - BSP 驱动:它使能了组件驱动被连接到特定的硬件并提供一组用户友好的 API,这些 API 的命名规则是: BSP_FUNCT_Action(): 例如 BSP_LED_Init(),BSP_LED_On() BSP 基于模块化结构,这使得它只需执行底层程序就可以轻松接口到其他硬件上。 2、硬件抽象层(HAL):此层提供底层驱动和硬件接口方法,实现与上层互动(应用,库, 协议栈)。它提供分类的,多实例和面向功能的 API,这些 API 通过提供随时可用流程来减 轻用户开发应用的负担。例如,与外围通信(I2S,UART),它提供的 API 可以初始化和 配置外围设备,基于轮询、终端或 DMA 流程的管理数据传输,和通信中可能出现的管理通 信错误。HAL 驱动 API 被分为 2 类,普通 API 提供 STM32 系列通用和常见功能,扩展 API 为特殊家族或特殊的部件号提供特殊和定制的功能。 3、基本外设常用例程:此层包含了 STM32F4 外设基本操作的例程,仅使用了 HAL 和 BSP 资源。
层 1:此层被分为两个子层: 1、中间件:一组库,覆盖了 USB 主从设备库,STemWin, LibJPEG, FreeRTOS, FatFS, LwIP, and PolarSSL。此层的组件水平互动可通过调用特定 API 直接实现,同时可通过特殊的回叫 和静态宏实现与底层驱动的垂直互动,回叫和静态宏实现在库系统调用接口中。例如,FatFs 通过实现磁盘 I/O 驱动去访问 microSD 或 USBMass Storage 类。 每个中间件组件的主要特性如下: USB 主从设备库 - 多个 USB 类支持(Mass-Storage, HID, CDC, DFU, AUDIO, MTP ) - 支持多类型包传输特性:允许发送大型数据包而不用将其分成多个包来适应最大包尺寸限制。 - 使用配置文件来改变内核和库配置,而不用改变库代码(只读) - 包括 32 位校准数据结构来控制 DMA 高速模式传输 - 通过配置文件支持来自用户层的多类型 USB OTG 内核实例 - RTOS 和独立操作 - 通过抽象层使用配置文件来实现链接到底层驱动,可以避免任何库和底层驱动之间的从属关系 STemWin 图形栈 - GUI 开发专业级解决方案,基于 Segger’s emWin 的解决方案 - 最优化显示驱动 - 软件工具,可生产代码和位图编辑的(STemWin Builder ) LibJPEG - 开源标准 - C 实现 JPEG 图像编解码 FreeRTOS - 开源标准 - CMSIS 通用层 - 低功耗模式下的动态时钟操作 - 整合进所有的 STM32Cube 中间件模块 FAT File system - FATFS FAT 开源库 - 长文件名支持 - 动态多驱动支持 - RTOS 和 独立操作 - 提供 microSD and USB host Mass-storage 类 例程 LwIP TCP/IP stack - 开源标准 - RTOS 和独立操作 2、基于中间件的例程:每个中间件伴随 1 个或多个例程(例如 Applications ),展示了如何使 用中间件。也提供了多中间件整合例程。 层 2:此层为单层,它是一个全局实时和图形示例,基于中间件服务层。基于硬件功能,底层抽 象层和应用实现外设的基本使用。
3 STM32CubeF4 固件包概览 3.1 已支持的 STM32F4 设备和硬件 STM32Cube 提供一个高度可移植的硬件抽象层(HAL),HAL 建立在分类的模块化的 结构上,允许上层,中间件和应用去实现它们的功能而不用深度了解 MCU。STM32Cube 改善了库代码的重利用能力和保证了轻松的移植程序从一个设备到另一个。 STM32CubeF4 提供了所有的 STM32F4 系列设备的支持。你只需定义正确的宏在 stm32f4xx.h 中。 下表列出了基于不用的 STM32F4 设备,需要定义的宏。(这些宏也可以在编译预处理中 定义) STM32CubeF4 特性的一组丰富的例程和各层示范使得理解和使用 HAL 驱动和中间件 都变的更容易。这些例程可运行在任何的意法半导体开发板上,详见下表。
STM32CubeF4 固件能运行在任何适配硬件上。这意味你能简单的升级 BSP 驱动来转移提 供的例程到你自己的硬件上,只要它们具有相同的硬件功能。 3.2 固件包概览 STM32CubeF4 固件解决方案以单包形式提供,包结构如下图。
开 发 板 的 BSP 驱动 STM32F4X X 所有组件 的 HAL 驱动 USB 设 备 库 , 支 持 OTG FS 和 HS 内核,并 且 支 持 以 下 (HID,MSC, CDC,Audio, DFU) 其他组件 包 含 STM32F4XX CMSIS 文件,它定 义了外设的寄存器 声明,位声明,地 址映射。 STemWin 专家栈, 来 自 SEEGER , 可 利用的二进制文件 USB 主设备库,同 时 支 持 OTG FS 和 HS 内核,并且支持 以 类 ( HID,MSC,CDC, Audio,MTP) 下 一组例程,按照开 发板来组织,以工 程 形 式 提 供 。 WIN32 目 录 包 含 STemWin 视窗模拟 工程 对每一款开发板,一组例程以 EWARM, MDK-ARM and TrueSTUDIO 的预工程形式提 供。
分享到:
收藏