驱动概况

优质
小牛编辑
137浏览
2023-12-01

摘要

本文将介绍 RT-Thread Studio 对于硬件外设驱动的支持情况。由于 RT-Thread nano 版本不具有设备概念,所以本文提到的 RT-Thread 为完整版本。nano 版建议直接使用 HAL 库进行驱动开发。

驱动概况

当前 RT-Thread Studio 驱动开发方式主要分为二种

  • 1、由 RT Thread Studio 自动生成,无需修改任何文件或者简单定义几个宏即可直接使用的驱动,如 GPIO,UART,I2C,SPI,SDIO 和 ETH 等。

  • 2、没有对接到设备驱动框架,可直接使用 HAL 库函数进行开发的驱动,如 DAC,FSMC 等。

RT-Thread Studio (截止V1.0.4)的驱动支持情况见下表

外设Studio 自动生成HAL 库函数开发
PIN支持支持
UART支持支持
I2C支持支持
SPI支持支持
QSPI支持支持
WDT支持支持
PWM支持支持
RTC支持支持
FLASH支持支持
SDIO支持支持
USB HOST支持支持
USB DEVICE支持支持
ETH支持支持
TIMER支持(推荐使用 HAL 库)支持
ADC支持(推荐使用 HAL 库)支持
DAC不支持支持
FSMC不支持支持
CAN不支持支持

使用简介

Studio 自动生成的驱动

使用 RT-Thread Studio 新建完整版工程时,用户不需要修改任何代码,例如:

  • PIN :该驱动对接到了设备驱动框架并且可以直接使用,具体 PIN 的使用参考 PIN设备

  • UART :对于串口驱动来说,生成工程的时候串口驱动也自动对接到了设备驱动框架,使用时需要自己定义串口号以及串口引脚对应的宏,具体参考 串口设备

  • I2C :软件 I2C 的驱动在使用 RT-Thread Studio 自动生成工程时也对接到了设备驱动框架,软件 I2C 驱动的开发参考 软件模拟I2C设备

  • SPI :SPI 设备驱动的开发参考 SPI设备

  • 更多设备:更多设备驱动的开发请参考 RT-Thread 官网文档中心的相关章节。

提示

虽然 ADC 及 Timer 外设已经对接到了设备驱动框架,但是其功能不够完善,例如:不支持 DMA,定时器的一些高级功能无法使用等。对于这类驱动,目前推荐使用 HAL 库函数方式进行开发。

直接使用 HAL 库函数开发的驱动

虽然可以通过 Studio 自动或者手动方式添加设备驱动代码,但是还是有些外设暂时无法对接到设备框架

此时用户直接按照 HAL 库开发的方式,开发对应的驱动即可。具体开发方式可以参考RT-Thread Studio 结合 STM32CubeMx 开发其他驱动文档