RT-Thread: STM32 SPI使用流程

1.添加驱动

①点开设置界面

②勾选看门 SPI 驱动

③点击保存

④查看添加的驱动文件 drv_spi.c

2.打开驱动头文件定义

①打开配置文件

②打开定义

3.打开需要开启的SPI总线

打开 drivers 目录下的 board.h 用SPI搜索,找到如下文字,打开对应的宏。

cpp 复制代码
/*-------------------------- SPI CONFIG BEGIN --------------------------*/

/** if you want to use spi bus you can use the following instructions.
 *
 * STEP 1, open spi driver framework support in the RT-Thread Settings file
 *
 * STEP 2, define macro related to the spi bus
 *                 such as     #define BSP_USING_SPI1
 *
 * STEP 3, copy your spi init function from stm32xxxx_hal_msp.c generated by stm32cubemx to the end of board.c file
 *                 such as     void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
 *
 * STEP 4, modify your stm32xxxx_hal_config.h file to support spi peripherals. define macro related to the peripherals
 *                 such as     #define HAL_SPI_MODULE_ENABLED
 */

/*#define BSP_USING_SPI1*/
#define BSP_USING_SPI2
/*#define BSP_USING_SPI3*/

4.查看设备

添加好后,把程序编译,并下载到mcu,在系统启动到输出 mch 时,通过串口发送命令 list_device,系统会回复 设备清单,如下图 sp1,sp2就是新增的设备。

5.打开STM32CubeMX配置初始化代码

①在时钟已经配好的情况下进行如下操作

②根据硬件接口选择SPI对应的管脚

③配置SPI

输出项目设置

代码生成器 设置

生成代码.

打开文件夹找到代码生成目录:

需要的代码在如下②,③文件,也有可能因为选择项的不同生成的文件是独立 spi.c

6.把生成的驱动添加到工程

相关推荐
LCG米7 小时前
STM32硬件CRC外设实测:多项式固定陷阱、CRC-32校验不匹配根因与软件查表法耗时对比落地
stm32·单片机·嵌入式硬件
La Pulga11 小时前
【FreeRTOS源码学习笔记】任务切换
单片机·mcu·学习·嵌入式·freertos·实时操作系统
女神下凡15 小时前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
Zw-awa16 小时前
从 CH340 到 HC-05 和 HC-06:让小车脱离电脑
stm32
硅基手札16 小时前
【Linux 内核专栏 19】20 · 嵌入式子系统 — GPIO·pinctrl·clock·regulator
linux·运维·单片机·linux内核·嵌入式开发·调试定位
何粥学18 小时前
Vivado 2024.2 开发记录(AC820 Zynq-7020)——软件使用,点亮led灯
单片机·嵌入式硬件·zynq
Sakura_j_h_19 小时前
51 单片机驱动四位数码管:动态扫描、限流电阻与消影的取舍
单片机·嵌入式硬件·51单片机·嵌入式·数码管·动态扫描·限流电阻
HANDY0920020 小时前
从“不照人”到“剂量达标”:扇叶遮挡式UV-C空气消毒的工程边界与可验证评估框架
开发语言·人工智能·嵌入式硬件·智能家居
飞凌嵌入式1 天前
千次静电放电试炼,守住飞凌嵌入式硬件可靠底线
嵌入式硬件
蹊黎1 天前
Linux 下用 C 语言实现进度条
linux·c语言·单片机