{"id":519,"date":"2017-11-25T15:03:24","date_gmt":"2017-11-25T14:03:24","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=519"},"modified":"2017-12-31T19:11:16","modified_gmt":"2017-12-31T18:11:16","slug":"87-dual_fatfs-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/87-dual_fatfs-library-stm32f4\/","title":{"rendered":"87-DUAL_FATFS-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/86-digin-dma-library-stm32f4\/\" title=\"86-DigIn-DMA-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 86-DigIn-DMA-Library (STM32F4)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/88-ws2812_8ch-library-stm32f4\/\" title=\"88-WS2812_8CH-Library (STM32F4)\">88-WS2812_8CH-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Hier die Kombination der FATFS_SDIO-Library (<a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=225\">Nr. 13<\/a>) und der USB_MSC_Host-Library (<a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=383\">Nr. 32<\/a>)<\/p>\n<p>Mit dieser Library kann auf zwei Devices (SD-Karte und USB-Stick) gleichzeitig zugegriffen werden.<\/p>\n<p>Hinweis-1 : Wer nur SD oder nur USB benutzen will, bitte die anderen Librarys benutzen.<\/p>\n<p>F\u00fcr eine genaue Beschreibung bitte bei den beiden einzel-Librarys nachlesen.<\/p>\n<p>Hinweis-2 : Der Pin PC0 ist eigentlich der Detect-Pin der SD-Karte. Auf dem gleichen Pin liegt beim Discovery-Board aber das USB-VBUS-Enable Signal. Aus dem Grund habe ich im H-File vom SD-Treiber den Detect-Pin disabled. Wenn bei euch der Detect-Pin woanders liegt, k\u00f6nnt ihr diesen wieder aktivieren.<\/p>\n<p>In den FATFS-Settings ist die Unterst\u00fctzung f\u00fcr ZWEI Devices eingestellt.<br \/>\nBitte beachten :<br \/>\nDie Pfad-Angabe f\u00fcr Zugriffe auf die SD-Karte = \u201c0:\/Test.txt\u201d<br \/>\nDie Pfad-Angabe f\u00fcr Zugriffe auf den UBS-Stick = \u201c1:\/Test.txt\u201d<\/p>\n<p><strong><strong>Beschreibungen :<\/strong><\/strong><\/p>\n<p><a title=\"13-FATFS_SDIO-Library (STM32F4)\" href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=225\">LINK<\/a> zu SD-Karten Funktionen<br \/>\n<a title=\"32-USB_MSC_HOST-Library (STM32F4)\" href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=383\">LINK<\/a> zu USB-Karten Funktionen<\/p>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 17.08.2014\r\n\/\/ Version  : 1.0\r\n\/\/ Autor    : UB\r\n\/\/ EMail    : mc-4u(@)t-online.de\r\n\/\/ Web      : www.mikrocontroller-4u.de\r\n\/\/ CPU      : STM32F4\r\n\/\/ IDE      : CooCox CoIDE 1.7.4\r\n\/\/ GCC      : 4.7 2012q4\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo der DUAL-FATFS Library\r\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen\r\n\/\/              \"cmsis_boot\/stm32f4xx.h\"\r\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_led.h\"\r\n#include \"stm32_ub_button.h\"\r\n#include \"stm32_ub_usb_msc_host.h\"\r\n\r\n\/\/------------------------------------------------------\r\n\/\/ Globale Variable\r\nFIL myFile;   \/\/ Filehandler\r\n\r\n\/\/------------------------------------------------------\r\nvoid write_to_SD(void) {\r\n  \/\/ MMC-Media mounten\r\n  if(UB_Fatfs_Mount(MMC_0)==FATFS_OK) {\r\n\tUB_Led_On(LED_ORANGE);\r\n    \/\/ File zum schreiben im root neu anlegen\r\n    if(UB_Fatfs_OpenFile(&amp;myFile, \"0:\/SD_File.txt\", F_WR_CLEAR)==FATFS_OK) {\r\n      \/\/ ein paar Textzeilen in das File schreiben\r\n      UB_Fatfs_WriteString(&amp;myFile,\"SD-Textfile\");\r\n      UB_Fatfs_WriteString(&amp;myFile,\"hier Zeile zwei\");\r\n      UB_Fatfs_WriteString(&amp;myFile,\"ENDE\");\r\n      \/\/ File schliessen\r\n      UB_Fatfs_CloseFile(&amp;myFile);\r\n    }\r\n    \/\/ Media unmounten\r\n    UB_Fatfs_UnMount(MMC_0);\r\n    UB_Led_Off(LED_ORANGE);\r\n  }\r\n}\r\n\r\n\/\/------------------------------------------------------\r\nvoid write_to_USB(void) {\r\n  \/\/ USB-Media mounten\r\n  if(UB_Fatfs_Mount(USB_1)==FATFS_OK) {\r\n\tUB_Led_On(LED_RED);\r\n    \/\/ File zum schreiben im root neu anlegen\r\n    if(UB_Fatfs_OpenFile(&amp;myFile, \"1:\/USB_File.txt\", F_WR_CLEAR)==FATFS_OK) {\r\n      \/\/ ein paar Textzeilen in das File schreiben\r\n      UB_Fatfs_WriteString(&amp;myFile,\"USB-Textfile\");\r\n      UB_Fatfs_WriteString(&amp;myFile,\"hier Zeile zwei\");\r\n      UB_Fatfs_WriteString(&amp;myFile,\"ENDE\");\r\n      \/\/ File schliessen\r\n      UB_Fatfs_CloseFile(&amp;myFile);\r\n    }\r\n    \/\/ Media unmounten\r\n    UB_Fatfs_UnMount(USB_1);\r\n    UB_Led_Off(LED_RED);\r\n  }\r\n}\r\n\r\n\/\/------------------------------------------------------\r\nint main(void)\r\n{\r\n  uint8_t write_ok=0;\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ init der LEDs\r\n  UB_Led_Init();\r\n  \/\/ init vom Button\r\n  UB_Button_Init();\r\n\r\n  \/\/ Init vom FATFS-System\r\n  UB_Fatfs_Init();\r\n\r\n  \/\/ Init vom USB-OTG-Port als MSC-HOST\r\n  \/\/ (zum lesen\/schreiben auf einen USB-Stick)\r\n  UB_USB_MSC_HOST_Init();\r\n\r\n  UB_Led_On(LED_BLUE);\r\n\r\n  while(1)\r\n  {\r\n    \/\/ pollen vom USB-Status\r\n    if(UB_USB_MSC_HOST_Do()==USB_MSC_DEV_CONNECTED) {\r\n      \/\/ wenn USB-Stick erkannt wurde\r\n      UB_Led_On(LED_GREEN);\r\n    }\r\n    else {\r\n      UB_Led_Off(LED_GREEN);\r\n    }\r\n\r\n    \/\/ pollen vom User-Button\r\n    if(UB_Button_Read(BTN_USER)==BTN_PRESSED) {\r\n      if(write_ok==0) {\r\n    \twrite_ok=1;\r\n        \/\/ testfile auf SD-Karte schreiben\r\n        write_to_SD();\r\n        \/\/ testfile auf USB-Stick schreiben\r\n        write_to_USB();\r\n      }\r\n    }\r\n    else {\r\n      write_ok=0;\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2014\/08\/ub_stm32f4_dual_fatfs_v105.zip\">ub_stm32f4_dual_fatfs_v105<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2014\/08\/Demo_87_DUAL_FATFS.zip\">Demo_87_DUAL_FATFS<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hier die Kombination der FATFS_SDIO-Library (Nr. 13) und der USB_MSC_Host-Library (Nr. 32) Mit dieser Library kann auf zwei Devices (SD-Karte und USB-Stick) gleichzeitig zugegriffen werden. Hinweis-1 : Wer nur SD oder nur USB benutzen will, bitte die anderen Librarys benutzen. &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/87-dual_fatfs-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":87,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[152,9,26,7,95,186],"class_list":["post-519","page","type-page","status-publish","hentry","category-stm32f4","tag-fatfs","tag-library","tag-sd-karte","tag-stm32f4","tag-usb","tag-usb-stick"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=519"}],"version-history":[{"count":6,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/519\/revisions"}],"predecessor-version":[{"id":1793,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/519\/revisions\/1793"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}