376T扇区写入速度提升求助

板子用的是stm32f103vet6+ch376T的组合

通信方式用的是硬件SPI

函数用的是贵公司v1.3的api

能正常读写csv、excel文件并也实现所需内容和格式

目前进行如下操作,无奈速度实在太慢,请帮忙看下

写入流程如下:

do{

        w25q256连续读取950字节;

        读取到的数据转成输出的字节流1;//9600字节

        读取到的数据转成输出的字节流2;//9600字节

        读取到的数据转成输出的字节流3;//2300字节

        打开文件1;

        CH376SecWrite();

        关闭并更新文件长度;

        打开文件2;

        CH376SecWrite();

        关闭并更新文件长度;

        打开文件3;

        CH376SecWrite();

        关闭并更新文件长度;

}while(count<写入循环次数)


实现效果是创建3个文件,把3份不同的数据导出到三个文件中

文件1、文件2大概40m

文件3大概20m


我现在导出完成需要150分钟,这速度惨不忍睹

请问有好的方法或者思路吗,谢谢


40m+40m+20m,总计约100m的大小

文件的路径是在根目录创建的一个文件夹里的

有想过这样的一个想法:

先写完一个文件的数据再重新写另一个文件的数据

优点是文件只需要在全部的数据写完后再进行关闭更新

但是这样又相当于多读两次的w25q,且效果未知

由于各种原因就没这样做了,请问有啥好的办法吗



您好,CH376的文件写入速度是受多方面影响,SPI接口主要取决于“时钟频率+数据间间隔时间”

  1. 把第一个文件写完再操作第二个文件这种方法应该可行,“连续写入”速度 > “打开+读写+关闭+打开+读写+关闭…循环”速度。

  2. 速度还受SPI频率影响,CH376支持24M的SPI频率,您可以检查一下SPI频率是否够高。


你好,我的spi用的是spi3,2分频,也就是说频率是18Mhz的。而对于你说的连续写入速度大于循环切换写入的速度这一说法

我今天也试了下连续写文件3,感觉速度好像也差不多阿。至于数据间的间隔时间我是按照命令数据间隔2us,数据间间隔1us这样子写的。而且我也通过指示灯的变化确定了确实是写入速度的影响,所以这样的情况下我就很头疼了。



多次打开关闭文件肯定是比一次打开文件直接写入要耗费时间的,打开关闭文件都需要消耗时间,建议还是直接写入文件。

您在调用 CH376SecWrite();函数时,扇区写入调成每次写入16KB数据试试,看能不能提高速度。


只有登录才能回复,可以选择微信账号登录