CH376写SD卡文件,追加数据时,总是自己重复多写数据,为什么啊?

晚上再想一下,问题还是要解决的!


问下你的接口是什么?下午有测试需要暂时没回帖,但是不至于你这样说我们客服吧。 你可以这样测试下,你发送4个字节的数据,看下真正写了多少了字节的数据?如果说是写了8个字节的数据的话,那么可能和你写数据函数有关系,所以需要详细的了解你的硬件接口,如果可以将三个读写子函数贴出来看下。


硬件SPI,我晚上把代码打包发给你吧,麻烦你帮忙看下~~ 下午确实急了,说话不好听,不好意思哈!


我估计也是SPI,因为从你发送的数据来看数据错位了。你SPI用的模式是多少?一般建议使用模式0比较好。还有你的SPI速度是多少?把程序发过来看下吧,晚上我给你看下程序。


使用的模式0,SPI速度1.3824M,好的,发你邮箱!


代码以发送到邮箱:fqb@wch.cn,请查收一下哈! 谢了!


你把SPI的速度提上去,最少SPI速度在2M以上。


SPI速度改到5点几M了,结果还是一样。。。 最后在每写次数据后延迟10ms,基本就可以了:CH376_ByteWrite(buf,30);delay_ms(10); 虽然基本可以说找到方法了,但是始终没搞明白,每写一组数据为什么需要延迟,而且我试过us级的延迟,仍然不行,至少要到10ms才能正常。。。。能不能解释一下,这是为什么呢?是什么原因造成必须要延迟才能正常写数据的呢?因为我看手册里好象没有这点说明,仅说了读写数据需要大于0.6us.....搞懂原因,以后碰到问题才能少走弯路。。


看了下你的代码,SPI你用的是模式3,你换成模式0测试下,还有在SPI写命令的时候不是将CS拉高在拉低吗,在拉高之后加2US延时之后在拉低看下是否可以。按照正常的操作不应该有这样的问题,今天给你做一个SPI的AVR的例子程序给你测试下。


恩,好的,收到代码我再去试一下!我也觉得正常情况下不应该出现这种问题的!


代码已收到,非常感谢!!马上要出个差,,晚上再测试。。。


测试完毕,果然是发送命令那里的问题,拉高后延迟2us再拉低,工作一晚上问题都没有再出现,谢了~~


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