{"id":179,"date":"2017-11-22T00:58:14","date_gmt":"2017-11-21T23:58:14","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=179"},"modified":"2017-12-30T19:20:30","modified_gmt":"2017-12-30T18:20:30","slug":"allgemeines-zu-den-stm32f7-librarys","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f746\/allgemeines-zu-den-stm32f7-librarys\/","title":{"rendered":"Allgemeines zu den STM32F7-Librarys"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f746\/cppcheck-in-openstm32\/\" title=\"CppCheck in OpenSTM32\"><span class=\"meta-nav\">\u2190<\/span> CppCheck in OpenSTM32<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f746\/komplette-library-liste-stm32f746\/\" title=\"Komplette-Library-Liste (STM32F746)\">Komplette-Library-Liste (STM32F746) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Die Files von mir sind recht einfach am STM32F7 zu benutzen,<br \/>\nwenn man einige Dinge beachtet.<\/p>\n<p>Ich schreib hier mal die Vorgehensweise f\u00fcr ein neues Projekt<br \/>\num die LED auf dem F746-Disco zum blinken zu bringen.<\/p>\n<p>1. In OpenSTM32 ein neues \u201cC-Project\u201d erzeugen<br \/>\n(siehe Doku zu \u201cerstes Projekt\u201d)<\/p>\n<p>2. Die Files der Librarys \u201cF746_System\u201d und \u201cF746_LED\u201d runterladen<br \/>\nund per Drag&amp;Drop in das Projekt hinzuf\u00fcgen.<br \/>\n(C-Files in den SRC-Ordner, H-Files in den INC-Ordner)<\/p>\n<p>3. Das \u201cMain.c\u201d durch diese Vorlage ersetzen :<\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 12.07.2015\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      : STM32F746\r\n\/\/ Board    : STM32F746-Discovery-Board\r\n\/\/ IDE      : OpenSTM32\r\n\/\/ GCC      : 4.9 2015q2\r\n\/\/ Module   : CubeHAL\r\n\/\/ Funktion : Hauptprogramm\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"stm32_ub_system.h\"\r\n\r\nint main(void)\r\n{\r\n  \/\/ init vom System\r\n  UB_System_Init();\r\n\r\n  while(1) {\r\n    \/\/ nothing to do\r\n  }\r\n}\r\n<\/pre>\n<p>4. In die \u201cMain.c\u201d den Code zum blinken hinzuf\u00fcgen :<\/p>\n<pre lang=\"c\" line=\"1\">\r\n#include \"stm32_ub_system.h\"\r\n#include \"stm32_ub_led.h\"\r\n\r\nint main(void)\r\n{\r\n  \/\/ init vom System\r\n  UB_System_Init();\r\n\r\n  \/\/ init der LED\r\n  UB_Led_Init();\r\n\r\n  while(1) {\r\n    UB_Led_Toggle(LED_GREEN);\r\n    HAL_Delay(100);\r\n  }\r\n}\r\n<\/pre>\n<p>5. Nach dem compilieren und programmieren sollte<br \/>\njetzt die gr\u00fcne LED auf dem F7-Disco blinken<\/p>\n<p><strong>Projekte mit Unterordnern :<\/strong><\/p>\n<p>einige Projekte bzw. Librarys enthalten Unterordner<br \/>\num die Files etwas strukturiert zu sortieren.<\/p>\n<p>z.B. die uBasic-Library besteht aus den zwei Files :<br \/>\n\u201cstm32_ub_ubasic.c\u201d und \u201cstm32_ub_ubasic.h\u201d<br \/>\nund einem Unterordner \u201c\\ubasic\u201d der nochmal<br \/>\n4 einzelne Files enth\u00e4lt.<\/p>\n<p>Um diese Struktur im OpenSTM32-Projekt beizubehalten<br \/>\nmuss folgendes gemacht werden.<\/p>\n<p>1. Das File \u201cstm32_ub_ubasic.c\u201d kann direkt per Drag&amp;Drop<br \/>\nin den \u201csrc\u201d Ordner vom Projekt kopiert werden.<\/p>\n<p>2. Das File \u201cstm32_ub_ubasic.h\u201d kann direkt per Drag&amp;Drop<br \/>\nin den \u201cinc\u201d Ordner vom Projekt kopiert werden.<\/p>\n<p>3. Jetzt in der IDE das Projekt markieren (die oberste Ebene)<br \/>\nund per \u201crechter Maustaste\/new\/Source Folder\u201d einen<br \/>\nneuen Unterordner anlegen und einen Namen vergeben<br \/>\n(hier im Beispiel \u201cubasic\u201d)<\/p>\n<p>das Projekt-Verzeichnis sieht damit so aus :<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/07\/f7_prj_u2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5418\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/07\/f7_prj_u2.jpg\" alt=\"f7_prj_u2\" width=\"214\" height=\"168\" \/><\/a><\/p>\n<p>die 4 Files vom \u201cuBasic\u201d Unterordner k\u00f6nnen jetzt per Drag&amp;Drop<br \/>\nin den gerade angelegten \u201cuBasic\u201d Ordner kopiert werden.<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/07\/f7_prj_u3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5420\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/07\/f7_prj_u3.jpg\" alt=\"f7_prj_u3\" width=\"293\" height=\"242\" \/><\/a><\/p>\n<p>4. Damit beim compilieren die Files gefunden werden, muss<br \/>\nder Ordern noch bekannt gemacht werden.<br \/>\nDazu \u201crechte Maustaste\/Properties\u201d und unter<br \/>\n\u201cC\/C++General\/Path and Symbols\u201d in den \u201cIncludes\u201d<br \/>\nper \u201cAdd\u2026\u201d den Pfad hinzuf\u00fcgen, hier : \u201c${ProjDirPath}\/ubasic\u201d<br \/>\n(in allen Languages)<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/07\/f7_prj_u4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5422\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/07\/f7_prj_u4-300x146.jpg\" alt=\"f7_prj_u4\" width=\"300\" height=\"146\" \/><\/a><\/p>\n<p>5. Das compilieren sollte jetzt ohne Fehler funktionieren.<\/p>\n<p><strong>Benutzung anderer Entwicklungsumgebungen :<\/strong><\/p>\n<p>Falls jemand eine andere IDE als OpenSTM32 benutzt,<br \/>\nmuss er darauf achten, das die Include Pfade richtig<br \/>\ngesetzt sind, damit die HAL-Librarys gefunden werden<br \/>\n(die sind in meinen Projektfiles nicht dabei)<\/p>\n<p>Hier meine Ordnerstruktur der Hal-Librarys als download :<br \/>\n(zusammen mit den CMSIS-Files)<\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2015\/07\/stm32f746g-disco_hal_lib.zip\">stm32f746g-disco_hal_lib<\/a><\/p>\n<p>in die HAL-Driver Pfade m\u00fcssen (nach dem auspacken) noch die<br \/>\naktuellen HAL-Librarys von ST kopiert werden.<\/p>\n<p>Danach braucht es in eurer IDE diese 4 Include Pfade :<\/p>\n<p>\u201c\\stm32f746g-disco_hal_lib\\CMSIS\\Core\u201d<br \/>\n\u201c\\stm32f746g-disco_hal_lib\\CMSIS\\Device\u201d<br \/>\n\u201c\\stm32f746g-disco_hal_lib\\HAL-Driver\\Inc\u201d<br \/>\n\u201c\\stm32f746g-disco_hal_lib\\HAL-Driver\\Inc\\Legacy\u201d<em id=\"__mceDel\"><em id=\"__mceDel\"><em id=\"__mceDel\"><br \/>\n<\/em><\/em><\/em><\/p>\n<p>damit habt ihr die gleiche Ordnerstruktur wie ich.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Files von mir sind recht einfach am STM32F7 zu benutzen, wenn man einige Dinge beachtet. Ich schreib hier mal die Vorgehensweise f\u00fcr ein neues Projekt um die LED auf dem F746-Disco zum blinken zu bringen. 1. In OpenSTM32 ein &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f746\/allgemeines-zu-den-stm32f7-librarys\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":69,"menu_order":7,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[130],"tags":[15,8,107,105,106],"class_list":["post-179","page","type-page","status-publish","hentry","category-stm32f746","tag-komplette-library-liste","tag-led","tag-openstm32","tag-stm32f746","tag-stm32f746gdiscovery"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/179","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=179"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/179\/revisions"}],"predecessor-version":[{"id":1326,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/179\/revisions\/1326"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/69"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}