stm32和外接flash(w25q)连接问题
stm32 and external flash (w25q) connection problem
我想 read/write 使用 STM32 micro (stm32F030F4) 从外部闪存 (Winbond W25Q16BV)。但是 运行 进程在 'HAL_SPI_Init()' 函数上停止。
我检查了调试过程,发现HAL_SPI_STATE_BUSY。
但我不知道为什么?
我正在使用STM32CubeMX生成主工程,Keil IDE编写和调试。
SPI_HandleTypeDef hspi1;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_SPI1_Init(void);
uint8_t spiData[2];
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
MX_FATFS_Init();
SPI_HandleTypeDef my_hspi;
HAL_SPI_Init(&my_hspi);
HAL_FLASH_Unlock();
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET); // CS to HIGH
HAL_Delay(10);
//Read data
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET); // CS to low
spiData[0]=0x05;
//transmit register address
HAL_SPI_Transmit(&my_hspi,spiData,1,10);
//read
HAL_SPI_Receive(&my_hspi,&spiData[1],1,10);
...
这是我们的原理图:
不幸的是,我没有找到关于如何使用外部 SPI 库的好文章 example/instruction。非常感谢对此问题的任何帮助。
我无法评论该软件,但根据您的评论,您希望启用flash的读写。
写保护 (/WP) 引脚可用于防止状态寄存器被写入。
/WP 引脚为低电平有效 (GND)。 (写入禁用)
/WP 引脚处于无效高电平 (VCC)。 (写入启用)
它的设计只允许读取数据。
如果要读写数据,/WP必须接Vcc
您还没有为 my_hspi
结构设置任何参数,因此您的 HAL 驱动程序不知道他必须做什么。
查看结构体的定义。关于不同结构元素的用途有很多评论。对于初始化,my_hspi.init
部分将是最有趣的。
您还必须 my_hspi.Instance
到所需的 SPI 通道。
您可以使用免费的 STM32 Cube Mx 软件生成示例配置。
我想 read/write 使用 STM32 micro (stm32F030F4) 从外部闪存 (Winbond W25Q16BV)。但是 运行 进程在 'HAL_SPI_Init()' 函数上停止。
我检查了调试过程,发现HAL_SPI_STATE_BUSY。 但我不知道为什么?
我正在使用STM32CubeMX生成主工程,Keil IDE编写和调试。
SPI_HandleTypeDef hspi1;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_SPI1_Init(void);
uint8_t spiData[2];
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_SPI1_Init();
MX_FATFS_Init();
SPI_HandleTypeDef my_hspi;
HAL_SPI_Init(&my_hspi);
HAL_FLASH_Unlock();
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET); // CS to HIGH
HAL_Delay(10);
//Read data
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET); // CS to low
spiData[0]=0x05;
//transmit register address
HAL_SPI_Transmit(&my_hspi,spiData,1,10);
//read
HAL_SPI_Receive(&my_hspi,&spiData[1],1,10);
...
这是我们的原理图:
不幸的是,我没有找到关于如何使用外部 SPI 库的好文章 example/instruction。非常感谢对此问题的任何帮助。
我无法评论该软件,但根据您的评论,您希望启用flash的读写。
写保护 (/WP) 引脚可用于防止状态寄存器被写入。
/WP 引脚为低电平有效 (GND)。 (写入禁用)
/WP 引脚处于无效高电平 (VCC)。 (写入启用)
它的设计只允许读取数据。
如果要读写数据,/WP必须接Vcc
您还没有为 my_hspi
结构设置任何参数,因此您的 HAL 驱动程序不知道他必须做什么。
查看结构体的定义。关于不同结构元素的用途有很多评论。对于初始化,my_hspi.init
部分将是最有趣的。
您还必须 my_hspi.Instance
到所需的 SPI 通道。
您可以使用免费的 STM32 Cube Mx 软件生成示例配置。