WCH沁恒单片机
直播中

h1654155199.5148

13年用户 633经验值
私信 关注
[问答]

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分钟,这速度惨不忍睹
请问有好的方法或者思路吗,谢谢


  

回帖(4)

李蛹

2022-7-14 14:28:00
40m+40m+20m,总计约100m的大小
文件的路径是在根目录创建的一个文件夹里的
有想过这样的一个想法:
先写完一个文件的数据再重新写另一个文件的数据
优点是文件只需要在全部的数据写完后再进行关闭更新
但是这样又相当于多读两次的w25q,且效果未知
由于各种原因就没这样做了,请问有啥好的办法吗
举报

李佳

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

  • 把第一个文件写完再操作第二个文件这种方法应该可行,“连续写入”速度 > “打开+读写+关闭+打开+读写+关闭…循环”速度。
  • 速度还受SPI频率影响,CH376支持24M的SPI频率,您可以检查一下SPI频率是否够高。
举报

连炜帆

2022-7-14 14:28:08
你好,我的spi用的是spi3,2分频,也就是说频率是18Mhz的。而对于你说的连续写入速度大于循环切换写入的速度这一说法
我今天也试了下连续写文件3,感觉速度好像也差不多阿。至于数据间的间隔时间我是按照命令数据间隔2us,数据间间隔1us这样子写的。而且我也通过指示灯的变化确定了确实是写入速度的影响,所以这样的情况下我就很头疼了。
举报

潘煜晨

2022-7-14 14:28:13
多次打开关闭文件肯定是比一次打开文件直接写入要耗费时间的,打开关闭文件都需要消耗时间,建议还是直接写入文件。
您在调用 CH376SecWrite();函数时,扇区写入调成每次写入16KB数据试试,看能不能提高速度。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分