MQX 讀寫U盤

      網友投稿 943 2025-04-02

      MQX操作系統具有完整的USB協議棧和MFS文件系統。其本身帶有操作U盤的例子。


      以FRDM_K64F+Freescale_MQX_4_1_FRDMK64F為例

      在C:\Freescale\Freescale_MQX_4_1_FRDMK64F\mfs\examples\mfs_usb目錄里有例子。這個例子里用到了shell,有的客戶不希望使用shell,而單獨能夠在u盤中建立文件(fat32格式)、讀寫文件。那么該如何操作呢?

      在usb_task.c 文件的USB_task()函數中,我增加了一個函數Udisk_Demo_Test()用來單獨實現直接對U盤進行讀寫操作。

      case USB_INTF_EVENT: /* Installs USB device. If no partitions found, installs MFS over whole device. */ dev_data = (MSD_DEV_DATA_PTR)msg.ccs_ptr; usb_msd_install(dev_data, &fs_mountp); /* Unlock the USB_Stick = signal to the application as available */ // added by wenxue 20151009 Udisk_Demo_Test(); _lwsem_post(&USB_Stick); break;

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      /*FUNCTION*---------------------------------------------------------------- * * Function Name : Udisk_Demo_Test * Returned Value : * Comments : Test U disk * *END*--------------------------------------------------------------------*/ int Udisk_Demo_Test(void) { MQX_FILE_PTR fd = NULL; _mqx_int c; _mqx_int bi; char buffer[100] = "This a test file!"; char buffer2[100]; char buffer3[100]; // 讀U盤里現成的文件wenxue.txt,讀取內容并打印輸出 fd = fopen("a:wenxue.txt", "r"); if (fd == NULL) { printf("Error opening the MFS device driver!"); _mqx_exit(1); } if (fd ) { do { c = fgetc(fd); if (c!= IO_EOF) { fputc((char)c, stdout); } } while (c!=IO_EOF); } fclose(fd); //讀取test1.txt,由于原先不存在該文件,會創建它,并寫入數據,然后讀出來 fd = fopen("a:test1.txt", "a+"); if (fd == NULL) { printf("Error opening the MFS file!"); _mqx_exit(1); } write(fd, buffer, strlen(buffer)); fseek(fd, 0, IO_SEEK_SET); read(fd, buffer2, strlen(buffer)); printf("\r\n"); for(bi=0;bi

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      MQX 讀寫U盤

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      需要注意的是:

      1)fopen的第二個參數如下:

      2)調用write函數之后,如果通過read函數讀取文件中的數據,需要調用fseek函數,fseek的第三個參數如下

      /* * Seek parameters */ #define IO_SEEK_SET (1) /* Seek from start */ #define IO_SEEK_CUR (2) /* Seek from current location */ #define IO_SEEK_END (3) /* Seek from end */

      1

      2

      3

      4

      5

      6

      它用來改變位置指針,注意第一個參數文件指針的區別。

      fseek

      原型:int fseek(FILE *stream, long offset, int fromwhere);

      功能:重定位流(數據流/文件)上的文件內部位置指針

      注意:不是定位文件指針(文件指針是 FILE * fp 這樣的),文件指針指向文件/流。位置指針指向文件內部的字節位置,隨著文件的讀取會移動,文件指針如果不重新賦值將不會改變指向別的文件。

      第一個參數stream為文件指針

      第二個參數offset為偏移量,正數表示正向偏移,負數表示負向偏移

      第三個參數origin設定從文件的哪里開始偏移

      在網上看到一篇關于C語言文件的blog,寫的很好:

      http://www.cnblogs.com/L-hq815/archive/2012/06/30/2571066.html

      同事Jicheng,寫了一篇關于KL25/26讀寫U盤的Blog:

      http://blog.chinaaet.com/jihceng0622/p/38978

      C語言中各函數的解釋:http://www.51testing.com/html/71/410671-818629.html

      Shell

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:在Excel2007中設計氣泡圖圖表樣式來呈現表格中的數據(氣泡圖Excel)
      下一篇:心靈雞湯之貪吃蛇
      相關文章
      亚洲爆乳AAA无码专区| 国产v亚洲v天堂无码网站| 老司机亚洲精品影院无码| 亚洲一区无码精品色| 亚洲国产精品成人AV在线| 亚洲国产精品乱码在线观看97 | 午夜在线a亚洲v天堂网2019| 亚洲第一永久在线观看| 精品日韩亚洲AV无码一区二区三区 | 亚洲精品国产啊女成拍色拍| 337p日本欧洲亚洲大胆艺术| 亚洲欧洲在线观看| 日韩亚洲Av人人夜夜澡人人爽 | 亚洲av无码不卡| 亚洲欧洲国产日韩精品| 亚洲色偷偷偷网站色偷一区| 亚洲精品电影在线| 亚洲日本在线观看| 亚洲电影中文字幕| 久久精品九九亚洲精品| 亚洲理论片在线中文字幕| 亚洲人成在久久综合网站| 在线亚洲午夜片AV大片| 亚洲高清国产拍精品熟女| 女bbbbxxxx另类亚洲| 国产精品亚洲小说专区| 亚洲欧洲国产成人综合在线观看| 国产啪亚洲国产精品无码| 在线亚洲v日韩v| 色久悠悠婷婷综合在线亚洲| 亚洲国产精品国自产拍AV| 国产成人亚洲综合色影视| 国产AV无码专区亚洲AV手机麻豆| 亚洲综合无码AV一区二区 | 亚洲国产天堂久久综合网站| 亚洲精品在线电影| 精品亚洲456在线播放| jzzijzzij在线观看亚洲熟妇| 国产精品亚洲综合一区| 久久亚洲国产精品| 亚洲六月丁香六月婷婷蜜芽|