簡體   English   中英

stm32和外置flash(w25q)連接問題

[英]stm32 and external flash (w25q) connection problem

我想使用 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 庫的好例子/說明。 對這個問題的任何幫助表示高度贊賞。

我無法對軟件發表評論,但根據您的評論,您希望啟用閃存的讀寫。

寫保護 (/WP) 引腳可用於防止寫入狀態寄存器。

/WP 引腳為低電平有效 (GND)。 (寫禁用)

/WP 引腳處於非活動高電平 (VCC)。 (寫使能)

它的設計只允許讀取數據。

如果要讀寫數據,/WP 必須連接到 Vcc。

您尚未為my_hspi結構設置任何參數,因此您的 HAL 驅動程序不知道他必須做什么。

查看結構體的定義。 有很多關於不同結構元素的用途的評論。 對於初始化my_hspi.init部分將是最有趣的。 您還必須將my_hspi.Instance設置為所需的 SPI 通道。

您可以使用免費的 STM32 Cube Mx 軟件生成示例配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM