[STM32F4] 基于HAL库的SPI读FLASH

[复制链接]
 楼主| 原来是wjc 发表于 2021-2-20 22:28 | 显示全部楼层 |阅读模式
基于STM32F407利用HAL库使用SPI对W25Q128进行读写实验。
 楼主| 原来是wjc 发表于 2021-2-20 22:30 | 显示全部楼层
电路图如下:PI0使能,PC2MISO,PI3MOSI,PI1CLK;
2200260311d019ac81.png
 楼主| 原来是wjc 发表于 2021-2-20 22:32 | 显示全部楼层
对COBEMX进行初始化:

5321760311d78b4bdd.png
 楼主| 原来是wjc 发表于 2021-2-20 22:33 | 显示全部楼层
根据芯片手册配置传输模式: 1900460311dbd1144f.png
 楼主| 原来是wjc 发表于 2021-2-20 22:35 | 显示全部楼层
 楼主| 原来是wjc 发表于 2021-2-20 22:37 | 显示全部楼层
 楼主| 原来是wjc 发表于 2021-2-20 22:38 | 显示全部楼层
 楼主| 原来是wjc 发表于 2021-2-20 22:39 | 显示全部楼层
轮询发送数据
3607160311ef99d585.png 309460311f2639ff0.png
 楼主| 原来是wjc 发表于 2021-2-20 22:40 | 显示全部楼层
KILE建立FLASH底层驱动.C文件 315160311f7483be6.png
 楼主| 原来是wjc 发表于 2021-2-20 22:44 | 显示全部楼层
 楼主| 原来是wjc 发表于 2021-2-20 22:47 | 显示全部楼层
 楼主| 原来是wjc 发表于 2021-2-20 22:47 | 显示全部楼层
根据芯片手册编写函数:
读一个字节:W25X_SPIRWByte

  1. /***************读一个字节****************/
  2. uint8_t W25X_SPIRWByte(uint8_t TxData)
  3. {
  4.     uint8_t RxData;
  5. /*硬件通道,发送的数据,接收的数据,数据长度,超时时间*/
  6.     HAL_SPI_TransmitReceive(&hspi2, &TxData, &RxData, 1, 0xff);
  7.     return RxData;
  8. }
 楼主| 原来是wjc 发表于 2021-2-20 22:51 | 显示全部楼层
 楼主| 原来是wjc 发表于 2021-2-20 22:54 | 显示全部楼层
 楼主| 原来是wjc 发表于 2021-2-20 22:54 | 显示全部楼层
芯片使能配置
  1. /****************使能CS引脚******************/
  2. #define FLASH_CS_Pin         GPIO_PIN_0
  3. #define FLASH_CS_GPIO_Port   GPIOI
  4. #define FLASH_CS_SET()       HAL_GPIO_WritePin(FLASH_CS_GPIO_Port, FLASH_CS_Pin, GPIO_PIN_SET)
  5. #define FLASH_CS_RESET()     HAL_GPIO_WritePin(FLASH_CS_GPIO_Port, FLASH_CS_Pin, GPIO_PIN_RESET)
 楼主| 原来是wjc 发表于 2021-2-20 22:55 | 显示全部楼层
芯片写使能:void W25X_WriteEnable()
 楼主| 原来是wjc 发表于 2021-2-20 22:56 | 显示全部楼层
78978603122f8ea825.png
  1. #define   Write_Enable   0x06  //擦除指令
 楼主| 原来是wjc 发表于 2021-2-20 22:57 | 显示全部楼层
 楼主| 原来是wjc 发表于 2021-2-20 22:57 | 显示全部楼层

  1. /***************flash写使能****************/
  2. void W25X_WriteEnable()
  3. {
  4.     FLASH_CS_RESET();//CS拉低使能芯片
  5.     W25X_SPIRWByte(Write_Enable);//写入指令
  6.     FLASH_CS_SET();
  7. }
 楼主| 原来是wjc 发表于 2021-2-20 22:58 | 显示全部楼层
芯片读取状态等待:W25X_WaitBusy() 9568560312399e7f2b.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

86

主题

1249

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部