【发布时间】:2019-06-11 11:32:18
【问题描述】:
我想用 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 库。非常感谢您对此问题的任何帮助。
【问题讨论】: