Rtthread学习笔记(九)RT-Thread Studio的开启SPI1总线,外部flash(W25Q64)做从机设备

本文详细介绍了在RT-Thread操作系统中SPI总线设备的配置与SPI从设备驱动编写过程,以STM32F1系列微控制器为例,展示了如何初始化SPI并使用SPIFlashW25Q64进行读写测试,包括HAL库的使用、SPI设备注册及SPI通讯配置。

一、步骤

1.打开RT-Thread Setting中软件模拟I2C

在这里插入图片描述
在这里插入图片描述

2.开启board.h/stm32F1xx_hal_config.h中关于SPI的宏定义

在这里插入图片描述
在这里插入图片描述

3.用stm32cube初始化spi相关内容(或直接复制RT文件夹下对应的bsp中代码)

复制cube中stm32f1xx_hal_msp.c中的void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)到board.c中,HAL库会自动初始化该函数,因为本来存在虚函数。

此部分代码也可从rtthread文件夹中对应的bsp目录中,直接打开stm32f1xx_hal_msp.c,进行复制对应部分的代码进行修改。
在这里插入图片描述

void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
{
   
   

  GPIO_InitTypeDef GPIO_InitStruct;
  if(hspi->Instance==SPI1)
  {
   
   
  /* USER CODE BEGIN SPI1_MspInit 0 */

  /* USER CODE END SPI1_MspInit 0 */
    /* Peripheral clock enable */
    __HAL_RCC_SPI1_CLK_ENABLE();

    /**SPI3 GPIO Configuration
    PA5     ------> SPI1_SCK
    PA6     ------> SPI1_MISO
    PA7     ------> SPI1_MOSI
    */
    GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_6;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

  /* USER CODE BEGIN SPI1_MspInit 1 */

  /* USER CODE END SPI1_MspIn
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值