一、步骤
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通讯配置。
最低0.47元/天 解锁文章
2677

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



