ch376写入问题

如datasheet

4、发送CMD01_WR_REQ_DATA(2DH)命令,读取可以往CH376数据长度。接着循环写数据

若所写入数量是已知是否可以忽略"读取可以往CH376数据长度"? 或是这个读取动作是必要的?  已测试,可不读


感謝TECH51

如先前问题在循环写入会出现资料遗失.将程序的最后加入CMD_BYTE_LOCATE(0xFFFFFFFF)后可正常不遗失.

但每次开档后的写入固定会有一次资料遗失.以下皆正常.有谁碰过这个问题吗?


循环写如下

CMD_BYTE_WRITE()

CMD_WR_REQ_DATA()

CMD_BYTE_WR_GO()

CMD_BYTE_LOCATE(0xFFFFFFFF)



********************TXT內容**********************

2022/02/22

00:01 EMPTY...

00:02 EMPTY...

00:03 EMPTY...

00:04 EMPTY...

00:05 EMPTY...

00:06 EMPTY...

00:07 EMPTY...

00:08 EMPTY...

00:09 EMPTY...

00:10 EMPTY...

00:11 EMPTY...

00:12 EMPTY...

00:13 EMPTY...

00:14 EMPTY...

00:15 EMPTY...

00:16 EMPTY...

00:17 EMPTY...

00:18 EMPTY...

00:19 EMPTY...

00:20 EMPTY...

00:21 EMPTY...

00:22 EMPTY00:23 EMPTY...

00:24 EMPTY...

00:25 EMPTY...

00:26 EMPTY...

00:27 EMPTY...

00:28 EMPTY...

00:29 EMPTY...

00:30 EMPTY...


以下正常

您好,如果您每次的长度是已知的,您可以每次在下次写入的时候,自己使用Byte_Locate函数将指针移动到对应的位置,然后写入函数,其中长度的参数,直接写自己已知长度即可。


已修改原文


您好,您可以确认一下每一次打开文本文件的时候,指针是否有正确位移到最后,防止出现数据覆盖的问题(这个很好判断,先看一下上一次结尾数据,再下次写入后看一下是否出现了覆盖写入)


这部分有确认.如果使用CMD_FILE_CREATE一新文件后.开始运行循环写一样会出现这个现象.

疑惑的是是否.我不该使用CMD_BYTE_WRITE循环写的方式.若我的资料有上千笔(每笔16或136byte).

因为这个遗漏现象有点像.缓冲区转移至磁盘的错误.是否我该使用CMD_DISK_WRITE.



您好,您代码里面,去掉循环,就单字节写入,FileClose,看看文件里面有没有。然后您也可以尝试多次调用FileClose函数试一下。最后您可以使用CH376SecWrite函数进行尝试


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