我用ch376读写sd卡,官方例程是在Wait376Interrupt()函数里面重复(最多500万次)调用Query376Interrupt()函数来查询写卡是否完成;我测试发现各个卡在大部分情况下重复的次数大概相同,但是偶尔会出现重复查询很多次,4GB卡最多重复过2500次,2GB卡最多重复过5800次。因为我的产品实时性要求很高,这里等待的时间过长的话会导致下次中断的数据来不及写上,请问这块应该做怎样的弥补呢?
查看: 3845
回复: 3
ch376的Wait376Interrupt()函数等待时间过长[求助]
热门产品 :
CH32X035: 32位USB+USB PD单片机
这个根据你自己产品的特性来做。比如等待的时间你可以做其他事情,也可以用中断来做。来不及写上,你可以先缓存。
我是在中断里面用ADC数据填写缓存(两个512B缓存交替使用),在主程序里面写卡;如果写卡成功标志来得晚的话,中断程序里面的缓存就会被实时数据给抹掉了,是否还要再加大缓存?
这个不好说。是否需要加大缓存和你的程序结构相关。建议你先测试写U盘的速度,把U盘的写速度提高,对写U盘部分的代码进行优化。 然后再进行双缓冲数据的优化测试。如果你用的是SD卡的话,对SD卡的写操作,CH376速度比较慢,建议你该为U盘。这样存储速度会块很多。
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录