ch376的Wait376Interrupt()函数等待时间过长[求助]

我用ch376读写sd卡,官方例程是在Wait376Interrupt()函数里面重复(最多500万次)调用Query376Interrupt()函数来查询写卡是否完成;我测试发现各个卡在大部分情况下重复的次数大概相同,但是偶尔会出现重复查询很多次,4GB卡最多重复过2500次,2GB卡最多重复过5800次。因为我的产品实时性要求很高,这里等待的时间过长的话会导致下次中断的数据来不及写上,请问这块应该做怎样的弥补呢?

这个根据你自己产品的特性来做。比如等待的时间你可以做其他事情,也可以用中断来做。来不及写上,你可以先缓存。


我是在中断里面用ADC数据填写缓存(两个512B缓存交替使用),在主程序里面写卡;如果写卡成功标志来得晚的话,中断程序里面的缓存就会被实时数据给抹掉了,是否还要再加大缓存?


这个不好说。是否需要加大缓存和你的程序结构相关。建议你先测试写U盘的速度,把U盘的写速度提高,对写U盘部分的代码进行优化。 然后再进行双缓冲数据的优化测试。如果你用的是SD卡的话,对SD卡的写操作,CH376速度比较慢,建议你该为U盘。这样存储速度会块很多。


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