stm32和外部闪存(w25q)连接问题
我想用STM32 micro(stm32F030F4)从外部闪存(Winbond W25Q16BV)读/写。但在“HAL_SPI_Init()”函数上运行进程会停止 我检查了调试过程,发现HAL_SPI_STATE_很忙。 但我不知道为什么 我使用STM32CubeMX生成主项目,使用keilide编写和调试stm32和外部闪存(w25q)连接问题,stm32,spi,stm32f0,swd,Stm32,Spi,Stm32f0,Swd,我想用STM32 micro(stm32F030F4)从外部闪存(Winbond W25Q16BV)读/写。但在“HAL_SPI_Init()”函数上运行进程会停止 我检查了调试过程,发现HAL_SPI_STATE_很忙。 但我不知道为什么 我使用STM32CubeMX生成主项目,使用keilide编写和调试 SPI_HandleTypeDef hspi1; void SystemClock_Config(void); static void MX_GPIO_Init(void); stat
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库的好例子/说明。非常感谢您对此问题提供的任何帮助。我无法对该软件发表评论,但根据您的评论,您希望启用闪存的读写功能 写保护(/WP)引脚可用于防止状态寄存器被写入 /WP引脚处于低激活状态(接地)。(写禁用) /WP引脚处于非活动高电平(VCC)。(写入启用) 它的设计只允许读取数据
如果要读取和写入数据,/WP必须连接到Vcc。我无法对软件发表评论,但根据您的评论,您希望启用闪存的读取和写入 写保护(/WP)引脚可用于防止状态寄存器被写入 /WP引脚处于低激活状态(接地)。(写禁用) /WP引脚处于非活动高电平(VCC)。(写入启用) 它的设计只允许读取数据
如果要读取和写入数据,/WP必须连接到Vcc。您尚未为
my\u hspi
结构设置任何参数,因此HAL驱动程序不知道必须执行什么操作
请看结构的定义。不同的struct元素的用途有很多注释。对于初始化,my_hspi.init
部分将是最有趣的。
您还必须将my_hspi.Instance
连接到所需的SPI通道
您可以使用免费的STM32 Cube Mx软件生成示例配置。您没有为
my_hspi
结构设置任何参数,因此您的HAL驱动程序不知道要做什么
请看结构的定义。不同的struct元素的用途有很多注释。对于初始化,my_hspi.init
部分将是最有趣的。
您还必须将my_hspi.Instance
连接到所需的SPI通道
您可以使用免费的STM32 Cube Mx软件生成示例配置。谢谢您的评论。我已将WP连接到Vcc,但问题仍然存在。谢谢您的评论Dexter。我已将WP连接到Vcc,但问题仍然存在。谢谢A.R.C.请解释更多。。。请出示一个链接或代码示例…这是立方体软件的一个示例:对于任何其他问题,您应该在本论坛或上使用搜索功能。谢谢a.R.C.请解释更多。。。请你展示一个链接或代码示例…这是一个立方体软件的示例:对于任何其他问题,你应该在本论坛或上使用搜索功能。