[CW32F030系列] 芯源CW32F030 SPI0主机模式驱动W25Q64读写的工程实现

[复制链接]
5|0
OKAKAKO 发表于 2026-10-28 21:10 | 显示全部楼层 |阅读模式
CW32F030 内置多个 SPI 接口,本文记录用 SPI0 主机模式驱动 W25Q64 SPI Flash 的工程实现,包括引脚配置、读写命令封装和工程注意事项。

## 一、硬件连接

| 信号 | CW32F030 引脚 | W25Q64 |
| --- | --- | --- |
| SCK | PA5 | CLK |
| MOSI | PA7 | DI |
| MISO | PA6 | DO |
| CS | PA4 | CS# |

## 二、SPI0 初始化要点

1. 配置 GPIO 复用为 SPI0 功能,注意 CS 使用普通 GPIO 手动控制;
2. SPI0 主机模式,时钟极性 CPOL=0、相位 CPHA=0(模式 0);
3. 分频后 SCK 建议不超过 20MHz,长走线可适当降速;
4. 传输完成后清空忙标志。

## 三、W25Q64 命令封装

```c
uint8_t spi_flash_read_id(void) {
    uint8_t cmd = 0x9F, id = 0;
    cs_low();
    spi0_write_byte(cmd);
    spi0_write_byte(0xFF);
    id = spi0_read_byte();
    cs_high();
    return id;
}
```

读数据时先发 0x03 读命令,再发 24 位地址,随后连续读取数据字节;写数据前必须先执行 0x06 写使能,并等待 WIP 标志清零。

## 四、注意事项

1. 写页大小为 256 字节,跨页写要分段处理;
2. 擦除扇区(4KB)前确认没有正在进行写操作;
3. 若 SPI 时钟过高速率不稳定,优先检查 MISO 上拉和走线长度。

以上就是 CW32F030 驱动 W25Q64 的要点,欢迎交流。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

451

主题

3129

帖子

4

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