选型核心看三点:容量、可靠性、成本。内部Flash(如STM32F103的512KB)速度高、接口简单(通过IAP/ICP直接访问),适合代码存储和中等数据量;若固件超过内部容量、需存字库/图片/日志等大块数据,或需掉电保存频繁改写的数据,则选外部Flash(如W25Q64 SPI NOR)。实操建议:先估算代码+只读数据大小,留30%余量;若用外部Flash做OTA,需额外设计引导程序(bootloader)管理分区。例如从SPI Flash读取固件:
```c
SPI_Flash_Read(fw_buf, APP_ADDR, APP_SIZE);
// 然后跳转到RAM或内部Flash执行
```
注意:外部Flash写入有擦除寿命(通常10万次),频繁记录日志建议用W25Q系列并做磨损均衡。另外,选型时考虑引脚占用——SPI占用4个IO,SDIO/QuadSPI占用更多。若追求低功耗待机,内部Flash无需外部器件,更适合。
mcuku 阿沐 · 2026-08-14