求助,
目前采取了两种方法,
一种是用NXP的USBHOSTLite例程,问题是只支持fat16格式,无法识别fat32格式的U盘。
另一种采用网上提供的USB host的Fatfs移植,主程序如下。问题是f_open返回的是
FR_NO_FILESYSTEM,而debug发现在调用check_fs函数中,执行判断时,条件“LD_WORD(&fs->win[BS_55AA]) != 0xAA55”成立,导致程序认为U盘不是fat格式。
Debug显示,fs->win[BS_55AA]是0,而其实在主程序的上一步“ f_mount(0,&fs);”执行后,debug显示fs的各项就全是0,所以是不是在f_mount这里就出错了?正确情况下,f_mount之后,fs应该是什么样?
初次接触LPC1788 和 fatfs,还请各位大侠多多赐教!
int main()
{
uint32_t numBlks, blkSize;
uint8_t inquiryResult[INQUIRY_LENGTH];
USB_INT32S rc;
int32_t fdw;
int32_t fdr;
uint32_t bytes_written;
uint32_t bytes_read;
SystemInit();
//disk_initialize(0);
Host_Init ();
rc = Host_EnumDev(); /* Enumerate the device connected */
rc = MS_Init( &blkSize, &numBlks, inquiryResult );
f_mount(0,&fs);
res = f_open( &fsrc , "0:/Demo.TXT" , FA_CREATE_NEW | FA_WRITE);
res = f_close(&fsrc);
while(1);
}
此帖出自
小平头技术问答
一周热门 更多>