stm32使用SPI对W25Q64--8M字节FLASH的读写

本文介绍了如何使用STM32通过SPI接口对W25Q64 8M字节Flash进行读写操作。内容涉及W25Q64的容量分布、最小擦除单位、SRAM缓存需求以及擦写寿命。在读取时,根据地址和长度将数据读入存储区;写入时需考虑扇区剩余空间,并在必要时先擦除扇区。实操代码参考STM32战舰例程。
摘要由CSDN通过智能技术生成


先W25Q64介绍:

板上有个带SPI的FLASH产品,W25Q64,华邦公司,大容量64Mb的,也就是8M字节,

(W25Q64把这个8M的容量分为128块-Block,每块64K字节,分出16个扇区,每个扇区4K字节)

即就是:W25Q64--8M  一个块--64K   一个扇区4K

最小擦除单位为一个扇区

 

关键点---

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用STM32F407的SPI2来驱动W25Q64闪存。首先,确保你已经正确连接了W25Q64STM32F407的SPI2引脚。然后,按照以下步骤进行驱动配置: 1. 初始化SPI2: 使用CubeMX或手动配置SPI2,并设置合适的时钟、模式、数据大小等参数。 2. 配置GPIO引脚:将SPI2的NSS、SCK、MISO和MOSI引脚连接到W25Q64上的对应引脚。 3. 编写读写函数:根据W25Q64数据手册,编写取和写入函数。这些函数将使用SPI2进行通信,并发送相应的指令和地址来取或写入数据。 以下是一个简单的示例代码,用于向W25Q64写入一个字节数据: ```c #include "stm32f4xx_hal.h" SPI_HandleTypeDef hspi2; void SPI2_Init(void) { /* 初始化SPI2 */ hspi2.Instance = SPI2; hspi2.Init.Mode = SPI_MODE_MASTER; hspi2.Init.Direction = SPI_DIRECTION_2LINES; hspi2.Init.DataSize = SPI_DATASIZE_8BIT; hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; hspi2.Init.NSS = SPI_NSS_SOFT; hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi2.Init.TIMode = SPI_TIMODE_DISABLE; hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi2.Init.CRCPolynomial = 10; HAL_SPI_Init(&hspi2); /* 启用SPI2外设 */ __HAL_SPI_ENABLE(&hspi2); } void W25Q64_WriteByte(uint8_t byte, uint32_t address) { /* 等待SPI2空闲 */ while ((SPI2->SR & SPI_SR_BSY) != 0); /* 选择W25Q64 */ HAL_GPIO_WritePin(GPIOx, GPIO_PIN_x, GPIO_PIN_RESET); /* 发送写入指令和地址 */ HAL_SPI_Transmit(&hspi2, &WRITE_ENABLE, 1, HAL_MAX_DELAY); HAL_SPI_Transmit(&hspi2, (uint8_t*)&address, 3, HAL_MAX_DELAY); /* 发送数据 */ HAL_SPI_Transmit(&hspi2, &byte, 1, HAL_MAX_DELAY); /* 取消选择W25Q64 */ HAL_GPIO_WritePin(GPIOx, GPIO_PIN_x, GPIO_PIN_SET); } ``` 这只是一个简单的示例代码,你还需要根据W25Q64的具体指令和寄存器来编写其他功能的读写函数。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值