执行CMD_QueryStatus时返回0c,但执行CMD_GetVer时返回03,是不是ExecCommand子程序仍有问题?执行CMD_FileCreate时有时好有时坏,晕了!
数据返回都是正确的,你现在监控到的数据是长度,后面的还有数据的,创建文件不成功应该和这没有关系,你创建那部分程序贴出来看一下
USBWRITE: clr dl ldi cl,CMD_ResetInit call ExecCommand call delay100ms UsbTab: .DB "\56.TXT",0 call CopyStr ldi dl,7 ldi cl,CMD_FileCreate call ExecCommand ldi al,1 sts mCmdParam+0,al ldi dl,1 ldi cl,CMD_FileClose call ExecCommand ;=============================================================================== CopyStr: push al push xl push xh push zl push zh ldiw zh,zl,UsbTab << 1 ldiw xh,xl,mCmdParam CopyStrLoop: lpm al,z+ tst al breq CopyStrExit st x+,al rjmp CopyStrLoop CopyStrExit: pop zh pop zl pop xh pop xl pop al ret ;=============================================================================== 前天能创建文件了,后来就往里写数据,发现写数据不对,然后就检查,发现改了文件名后,再执行程序,文件名还是上次的,好像是close那儿不对,分步执行新建文件是对的,返回00,close就返回错误
还有问一下:我要实现的是把单片机EEPROM里的数据拷到U盘里,只需要执行新建-字节写-关闭这几个命令吧?
关于汇编的程序你可以去参考一下我们提供的事例程序. 对于数据的储存,建议步骤如下: 打开文件,如果文件存在,就可以直接写,写完更新一下文件长度,然后关闭文件.如果不存在,就创建新文件,然后开始写,写完更新一下文件长度,关闭.