一、步骤
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

本文详细介绍了在RT-Thread操作系统中SPI总线设备的配置与SPI从设备驱动编写过程,以STM32F1系列微控制器为例,展示了如何初始化SPI并使用SPIFlashW25Q64进行读写测试,包括HAL库的使用、SPI设备注册及SPI通讯配置。
RT-Thread Studio的开启SPI1总线,外部flash(W25Q64)做从机设备&spm=1001.2101.3001.5002&articleId=105599036&d=1&t=3&u=d89a1de8af8a4b959f668975e787c353)
7206

被折叠的 条评论
为什么被折叠?



