This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好,
我正在尝试写入 USB 文件。 它似乎卡在 USBHCPipeRad()中。
在 f_write 中,它在 ff.c 的第1000行调用 create_chain,并在第290行单步调用 get_cluster()。 文件系统是 FAT32、因此它跳转到第162行并调用 move_window。 在 move_window 中、它转到第88行并调用 disk_read (包含在 fat_usbmsc.c 中)。 计数==1。 程序卡在 USBHMSCBlockRead 中。 我认为在 USBHCPDPipeRad()函数内。 我无法调试此文件,因为它不能正确执行。
是否有任何代码版本可以正常工作? 这是否与以下方面有关:
https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/482787/1741556
此致
Anish
您好 Sal、
是的、我可以写入闪存驱动器中的文件。 它的格式也是 Fat。
但是、它不能可靠地写入文件。 需要3-5次尝试将一些数据写入其中。
您还能告诉我它是否一次写入高达4GB? 或者,我是否需要写入固定的字节长度并对 大文件重复该过程?
我已附上以下代码:
#define USB_buffer_size 50 char USB_buffer[USB_buffer_size]={0}; uint16_t Write_USB_master (void) { static uint16_t USB_local_FLAG = FLG_BUSY; static uint16_t USB_status = USB_W_open; static uint16_t flg; static uint16_t_file_t file= t_write_t file0_t、t_file='t file0';static uint16_t_name_file_t_write_t_t file0';t_name_file_t = uint16_t_filter_t_t_name&t = uint16_t_write_t_t file= uint16_t&t USB_buffer[1]='2'; USB_buffer[2]='3'; USB_buffer[3]='4'; USB_buffer[4]='5'; USB_buffer[5]='6'; USB_buffer[6]='7'; USB_buffer[7]='8'; USB_buffer[8]='9'; USB_buffer[9]='0'; USB_buffer[10]='1'; USB_buffer[11]='2'; USB_buffer[12]='3'; USB_buffer[13]='4'; USB_buffer[14]='5'; USB_buffer[15]='6'; USB_buffer[16]='7'; USB_buffer[17]='8'; USB_buffer[18]='9'; Write_USB_file (USB_buffer、USB_buffer_size、 &num_Byte_written); }
uint16_t Write_USB_file (char USB_data[]、 uint16_t USB_BS、 uint16_t * usBytesWritten) { FRESULT fresult;
静态 uint16_t JRUF_CMPT = FLG_BUSY; fresult = f_write (&g_sFileObject、USB_data、(word)(USB_BS)、(word_)(usBytesWritten)); /*如果读取错误,则打印换行符并将错误返回给用户*/ if (fresult != FR_OK) { FRUF_CMPT = FLG_ERROR; } 否则 { FRUF_CMPT = FLG_CMPT; f_close (&g_sFileObject); } 返回 FRUG_CMPT; }
Anish