{"id":309,"date":"2017-11-23T20:56:00","date_gmt":"2017-11-23T19:56:00","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=309"},"modified":"2018-01-24T16:42:04","modified_gmt":"2018-01-24T15:42:04","slug":"13-usb_cdc-library-stm32f429","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f429\/komplette-library-liste-stm32f429\/13-usb_cdc-library-stm32f429\/","title":{"rendered":"13-USB_CDC-Library (STM32F429)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f429\/komplette-library-liste-stm32f429\/12-uart-library-stm32f429\/\" title=\"12-UART-Library (STM32F429)\"><span class=\"meta-nav\">\u2190<\/span> 12-UART-Library (STM32F429)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f429\/komplette-library-liste-stm32f429\/14-i2c_lolevel-library-stm32f429\/\" title=\"14-I2C_LoLevel-Library (STM32F429)\">14-I2C_LoLevel-Library (STM32F429) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Hier eine Library um den USB-OTG-Port am Discovery-Board im CDC-Mode zu betreiben. Damit wird beim Verbinden mit einem PC ein virtueller Comport eingerichtet \u00fcber den man (wie per UART) Daten austauschen kann.<\/p>\n<p>Auf der PC Seite muss der \u201cVirtualComPort-Driver von ST\u201d installiert sein. Den gibts auf der ST-Seite zum download (ich hab mit Version 1.3.1 getestet).<br \/>\n<em>Auf der ST-Seite nach \u201cSTSW-STM32102\u2033 suchen.<\/em><\/p>\n<p>Die LIB erwartet beim empfang als Endekennung das Zeichen \u201c0x0D\u201d = CarriageReturn<br \/>\n(das muss der PC also am Stringende anh\u00e4ngen)<\/p>\n<p>Beim Protokoll (Baudrate, Stopbits usw) muss nichts eingestellt werden, das wird vom USB-Treiber erledigt.<\/p>\n<p>In der Library gibt es eine Sende und eine Empfangsfunktion f\u00fcr Strings und eine Funktion zum testen ob die USB-Verbindung steht.<\/p>\n<p>Ich hab auch ein \u201cmini\u201d PC-Terminal-Programm geschrieben um die Funktion zu testen.<\/p>\n<p>Es wird ein USB-Kabel mit Micro-USB-Stecker ben\u00f6tigt. (gibts bei EBay oder Amazon)<\/p>\n<p><em><strong>Hinweis<\/strong> : weil f\u00fcr USB eine Clock-Frq von 48MHz zwingend notwendig ist und diese Frq mit einer Sysclock von 180MHz nicht einstellbar ist, wurde f\u00fcr diese Library der Sysclock auf 168MHz runtergesetzt !!<\/em><\/p>\n<p><strong>Benutzte Pins<\/strong><\/p>\n<pre>  PB13  -> USB_OTG_VBUS\r\n  PB12  -> USB_OTG_ID\r\n  PB14  -> USB_OTG_DM\r\n  PB15  -> USB_OTG_DP<\/pre>\n<p><strong>Enumerationen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  USB_CDC_NO_INIT =0, \/\/ USB-Schnittstelle noch nicht initialisiert\r\n  USB_CDC_DETACHED,   \/\/ USB-Verbindung getrennt\r\n  USB_CDC_CONNECTED   \/\/ USB-Verbindung hergestellt\r\n}USB_CDC_STATUS_t;<\/pre>\n<p><strong>:<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  NONE = 0,  \/\/ keine Endekennung\r\n  LFCR,      \/\/ LineFeed + CarriageReturn (0x0A,0x0D)\r\n  CRLF,      \/\/ CarriageReturn + LineFeed (0x0D,0x0A)\r\n  LF,        \/\/ nur LineFeed (0x0A)\r\n  CR         \/\/ nur CarriageReturn (0x0D)\r\n}USB_CDC_LASTBYTE_t;<\/pre>\n<p><strong>:<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  RX_USB_ERR =0, \/\/ keine USB Verbindung\r\n  RX_EMPTY,      \/\/ nichts empfangen\r\n  RX_READY       \/\/ es steht was im Empfangspuffer\r\n}USB_CDC_RXSTATUS_t;<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_USB_CDC_Init(void);                                                \/\/ zum init der USB-Schnittstelle\r\nUSB_CDC_STATUS_t UB_USB_CDC_GetStatus(void);                               \/\/ USB Status abpr\u00fcfen\r\nErrorStatus UB_USB_CDC_SendString(char *ptr, USB_CDC_LASTBYTE_t end_cmd);  \/\/ zum senden eines Strings per USB\r\nUSB_CDC_RXSTATUS_t UB_USB_CDC_ReceiveString(char *ptr);                    \/\/ zum empfangen eines Strings per USB<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 02.11.2013\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      : STM32F429\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 USB-CDC-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\/\/ In Configuration diese Define hinzuf\u00fcgen :\r\n\/\/ \"STM32F429_439xx\" , \"__ASSEMBLY__\" , \"USE_STDPERIPH_DRIVER\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_led.h\"\r\n#include \"stm32_ub_usb_cdc.h\"\r\n\r\nint main(void)\r\n{\r\n  char rx_buf[APP_TX_BUF_SIZE]; \/\/ puffer fuer Datenempfang\r\n  USB_CDC_RXSTATUS_t check=RX_EMPTY;\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ init der LEDs\r\n  UB_Led_Init();\r\n\r\n  \/\/ Init vom USB-OTG-Port als CDC-Device\r\n  \/\/ (Virtueller-ComPort)\r\n  UB_USB_CDC_Init();\r\n\r\n  while(1)\r\n  {\r\n    \/\/ Test ob USB-Verbindung zum PC besteht\r\n    if(UB_USB_CDC_GetStatus()==USB_CDC_CONNECTED) {\r\n      UB_Led_On(LED_GREEN);\r\n   \t  \/\/ test ob etwas per USB empfangen wurde\r\n      check=UB_USB_CDC_ReceiveString(rx_buf);\r\n      if(check==RX_READY) {\r\n        \/\/ wenn ja, dann als Echo zur\u00fccksenden\r\n        UB_USB_CDC_SendString(rx_buf,LFCR);\r\n      }\r\n    }\r\n    else {\r\n      UB_Led_Off(LED_GREEN);\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"wp-content\/uploads\/2013\/11\/usb_cdc_device_f429_v100.zip\">usb_cdc_device_f429_v100<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"wp-content\/uploads\/2013\/11\/Demo_F429_13.zip\">Demo_F429_13<\/a><\/p>\n<p>Hier der Link zu dem PC-Programm :<\/p>\n<p><a title=\"PC-Programme von mir\" href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=140\">PC-Programme<\/a><\/p>\n<hr \/>\n<h3 id=\"comments-title\">19 Antworten auf <em>13-USB_CDC-Library (STM32F429)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-939\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-939\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/aed5c431acf29c0030c4c38a2ccd70ad?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">joe14<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">5. November 2013 um 15:45<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>I have problem with implementing this. Can be problem with using this lib inside c++ program. I use C++ in CooCox with this instructions http:\/\/www.coocox.org\/forum\/images\/ckeditorfiles\/20131023205634_How_to_use_CPlusPlus_in_CoIDE.pdf<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-943\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-943\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">5. November 2013 um 20:33<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>uhh sorry, i can\u2019t say anything about \u201cc++\u201d i use \u201cc\u201d only. But try to add this statement in all the \u201cH-Files\u201d<\/p>\n<pre lang=\"c\" line=\"1\">#ifdef __cplusplus\r\nextern \u201cC\u201d {\r\n#endif\r\n\r\n\/\/ H-File code\r\n\r\n#ifdef __cplusplus\r\n}\r\n#endif\r\n<\/pre>\n<p>it\u2019s a lot of work and i can\u2019t promise thats the solution <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_sad.gif\" alt=\":-(\" \/><br \/>\nBy the way\u2026C++ is not really necessary <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":-)\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-963\" class=\"comment even depth-3\">\n<div id=\"comment-963\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/aed5c431acf29c0030c4c38a2ccd70ad?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">joe14<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">6. November 2013 um 16:17<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Thank you, I can confirm it compiles. I don\u2019t have board right here now, so I cant test it, but after adding lines you suggested it compiles.<\/p>\n<p>I am using C++, because i am porting code from arduino mega, where i wrote some source in c++<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1003\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-1003\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">9. November 2013 um 21:57<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Wo dran liegt es eigenlich, dass nur USB-FullSpeed und nicht HighSpeed geht?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1006\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-1006\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">10. November 2013 um 10:47<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>An der Hardware\u2026f\u00fcr HighSpeed wird ein externer PHY am ULPI-Bus der CPU ben\u00f6tigt. Da dieser auf dem Board nicht vorhanden ist, geht nur FullSpeed.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1051\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-1051\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/1787f98d8c33340a1f1d3759228c8b36?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Tobi<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">20. November 2013 um 00:52<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hi,<br \/>\nsuper Arbeit Danke daf\u00fcr.<br \/>\nIch habe eine Frage:<br \/>\nin Zeile 535 der system_stm32f4xx.c steht noch folgendes:<\/p>\n<pre lang=\"c\" line=\"535\">\r\n\/* Enable the Over-drive to extend the clock frequency to 180 Mhz *\/\r\nPWR->CR |= PWR_CR_ODEN;\r\n<\/pre>\n<p>auf S.91 von \u201cDocID024030 Rev 2\u2033 RM0090 Reference manual<br \/>\nist angegeben, dass damit APB1 Max 45 MHz ist.<br \/>\nMit dem Prescaler 4 ist APB1 aber 42 MHz oder ver\u00e4ndert der Over-drive mode daran etwas?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1054\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-1054\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">20. November 2013 um 22:46<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Die max FRQ von 45MHz hat man nur, wenn Sysclk=180MHz betr\u00e4gt. (180\/4=45). Aber f\u00fcr die USB-Librarys habe ich den Sysclock auf 168MHz runtergesetzt und damit ist APB1 nur 42MHz.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1059\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-1059\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/1787f98d8c33340a1f1d3759228c8b36?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Tobi<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">21. November 2013 um 19:06<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hi,<br \/>\nich habe ein Problem, welches bei der Lib f\u00fcr das STM32F4DISCO anscheinend schonmal aufgetreten ist. Der PC erkennt nicht, dass eine Hardware angeschlossen wurde. Der ST Virt. Com Driver ist installiert.<br \/>\nMuss ich noch etwas beachten?<\/p>\n<p>Danke<br \/>\nTobias<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1061\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-1061\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">21. November 2013 um 19:16<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>bist du 100% sicher das deine USB-Clock 48MHz sind ? \u2026 wenn der eine andere Frq hat, wird das Device nicht erkannt.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1402\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-1402\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/e7b61b6d126a541032224d0afa252f8a?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">NeoExacun<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">17. Februar 2014 um 20:03<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ich habe ein schwerwiegendes Problem mit der Lib.<\/p>\n<p>Sobald ich sie im Projekt hinzuf\u00fcge wird das Kompilat leider unbrauchbar. Wenn ich es aufspiele passiert garnichts mehr. Sobald ich die Dateien wieder aus dem Projekt l\u00f6sche geht alles wieder.<\/p>\n<p>Die Ausgabe vom Debugger sieht folgenderma\u00dfen aus:<br \/>\nfile \u201c****\/stm32f429\/Debug\/bin\/stm32f429.elf\u201d<br \/>\nReading symbols from ****\\stm32f429\\Debug\\bin\\stm32f429.elf\u2026done.<br \/>\nset tdesc filename E:\/CooCox\/CoIDE\/bin\/target_desc\/arm-with-m.xml<br \/>\ntarget remote 127.0.0.1:2009<br \/>\nRemote debugging using 127.0.0.1:2009<br \/>\n0x0800cac4 in UB_I2C3_Init () at ****\\ub_lib\\stm32_ub_i2c3.c:84<br \/>\n84 GPIO_InitStructure.GPIO_Pin = I2C3DEV.SDA.PIN;<br \/>\ntbreak main<br \/>\nTemporary breakpoint 1 at 0x800d848: file ****\\main.c, line 335.<br \/>\ncontinue<br \/>\nContinuing.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1406\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-1406\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">18. Februar 2014 um 19:48<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>funktioniert den das Beispiel-Projekt wie es soll, oder geht das auch nicht ?. Ansonsten wirst du mit dem Debugger schauen m\u00fcssen wo genau er h\u00e4ngen bleibt.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1663\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-1663\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/6ed2487f92229556e18bfda2931f1781?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Christoph<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">8. Mai 2014 um 06:36<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Guten Morgen,<br \/>\nerstmal vielen Dank f\u00fcr so klare Libraries. Die werde ich mir noch weiter anschauen.<\/p>\n<p>unterscheided sich der STM32F429 als USB CDC device zu dem STM32F4 Discovery?<\/p>\n<p>Das STM32F4 Discovery habe ich erfolgreich als Serial Device auf meinem Mac eingebunden. (Ich verwende nicht deine Lib sonder ein Murks aus ALTER(USB) (!) und neuer StdPeriphLib(Rest)). Die funktionierende Version konnte ich leider nicht auf den F429 umbiegen.<br \/>\nDeine Libraryversion kompiliert. Das Ger\u00e4t wird aber auf meinem Mac nicht als serial device eingebunden. Und zu allem \u00fcberfluss \u201cblockiert\u201d der Mac das ger\u00e4t sodass ich es nicht in einer Virtuellen Maschine verwenden kann. Bisher habe ich keinen Plan was da passiert. Das USB Ger\u00e4t wird erkannt, aber nicht als device eingebunden.<br \/>\nIch habe es allerdings geschafft den F420 mit libusb ein paar bytes zuzuschubsen, aber das funktioniert bisher nur einseitig und nicht zuverl\u00e4ssig.<\/p>\n<p>Deswegen nochmal die anfangsfrage: besteht da ein prinzipieller Unterschied zwischen den evaluatiosnboards bzw. libraryversionen ?<\/p>\n<p>Was ich bisher erkennen konnte ist in der Funktion<br \/>\nUSB_OTG_BSP_Init()<br \/>\nsteht bei dir:<br \/>\nRCC_AHB1PeriphClockCmd(RCC_AHB1Periph_OTG_HS, ENABLE);<br \/>\nund in meiner funktionierenden Version<br \/>\nRCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE);<\/p>\n<p>Unter Windows wird das serielle Ger\u00e4t erkannt. Nur will ich jetzt nicht alles umschmei\u00dfen, deswegen habe ich ja als backup eine Virtuelle Maschine.<\/p>\n<p>P.S: meine Frau liest gerade mit und sagt wir h\u00e4tten sie nicht mehr alle und brauchen ein gutes Psychopharmaka<\/p>\n<p>Sch\u00f6nen Gru\u00df<br \/>\nChristoph<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1689\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-1689\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">10. Mai 2014 um 09:19<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>der Unterschied zwischen den zwei Disco Boards ist :<br \/>\nbei F407 ist der User-USB an den FullSpeed-Port angeschlossen (PA11,PA12) beim F429 h\u00e4ngt er am HighSpeed-Port (PB14, PB15) der allerdings nur im FullSpeed-Mode l\u00e4uft. (f\u00fcr HighSpeed w\u00e4re ein externer PHY notwendig)<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-2999\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-2999\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/d113a6b02d72388354e1b8354434b0f8?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Mathias<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">18. M\u00e4rz 2015 um 14:40<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Guten Tag,<br \/>\ngibt es den f\u00fcr die USB CDC Funktion auch irgendwo einen Block zum einbinden in Simulink ?<\/p>\n<p>Gru\u00df Mathias<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-3005\" class=\"comment byuser comment-author-admin_ub bypostauthor even depth-2\">\n<div id=\"comment-3005\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">18. M\u00e4rz 2015 um 19:26<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>von mir nicht.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-3009\" class=\"comment odd alt thread-odd thread-alt depth-1\">\n<div id=\"comment-3009\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/d113a6b02d72388354e1b8354434b0f8?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Mathias<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">19. M\u00e4rz 2015 um 10:36<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Ok,<br \/>\nich werde versuchen den Code in einem \u201cCustom Block\u201d in Simulink einzubinden. Das scheint irgendwie zu klappen.<br \/>\nTrotzdem erst einmal Danke !<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-3340\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-3340\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/370df98786965f4260235bc87a28d412?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Florian<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">16. Juni 2015 um 12:00<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\nvielen Dank f\u00fcr diese Startup Hilfe.<\/p>\n<p>Leider bin ich noch nicht in das ST Spezifische eingearbeitet, aber wenn man das Programm mit einem 25MHz Clock betreiben m\u00f6chte, muss man (im Vergleich zu Deinem Demo Programm) in stm32f4xx.h:<\/p>\n<p>#define HSE_VALUE ((uint32_t)25000000) \/*!&lt; Value of the External oscillator in Hz *\/<\/p>\n<p>und in system_stm32f4xx.c:<\/p>\n<p>#define PLL_M 25<\/p>\n<p>setzen, oder ??? Noch irgendwas anderes ??? Leider erkennt mein Ger\u00e4te Manager den USB\/COM noch nicht, obwohl ich den ST VirtualComPortDriver installiert habe.<\/p>\n<p>W\u00fcrde mich riesig \u00fcber eine Antwort freuen.<\/p>\n<p>Cheers, Florian<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-3347\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-3347\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">18. Juni 2015 um 19:30<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>f\u00fcr USB Anwendungen muss der Sysclock auf 168MHz eingestellt sein<br \/>\n(nicht auf 180 MHz)<br \/>\ndu brauchst also HSE=25000000, PLL_M = 25, PLL_N = 336<br \/>\nwahrscheinlich steht bei dir das PLL_N noch auf 360<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-4922\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-4922\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/cb9d21813919840d89e498e06be46027?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Marcel<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">4. Januar 2017 um 14:01<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<br \/>\nerstmal vielen Dank f\u00fcr deine zahlreichen Bibliotheken. Bisher hatte ich VCP nur auf einem STM32f407-Discovery mit einer Libary von Tim Majerle laufen.<\/p>\n<p>Ich versuche gerade deine \u201c13-USB_CDC-Library (STM32F429)\u201d Libary auf meinem STM32F429-DISC1 zum laufen zu bekommen, leider ohne Erfolg. Selbst mit dem CoIDE Projekt von dir habe ich im Ger\u00e4te Manager nur 2 Ger\u00e4te (STM32 VirtualComPort in FS Mode) deren Treiber nicht installiert werden konnte.<\/p>\n<p>ist die Libary \u00fcberhaupt mit dem Stm32F429i-DISC1 kompatibel?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Hier eine Library um den USB-OTG-Port am Discovery-Board im CDC-Mode zu betreiben. Damit wird beim Verbinden mit einem PC ein virtueller Comport eingerichtet \u00fcber den man (wie per UART) Daten austauschen kann. Auf der PC Seite muss der \u201cVirtualComPort-Driver von &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f429\/komplette-library-liste-stm32f429\/13-usb_cdc-library-stm32f429\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":160,"menu_order":13,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[129],"tags":[184,9,102,95],"class_list":["post-309","page","type-page","status-publish","hentry","category-stm32f429","tag-cdc","tag-library","tag-stm32f429","tag-usb"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/309","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=309"}],"version-history":[{"count":5,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/309\/revisions"}],"predecessor-version":[{"id":1956,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/309\/revisions\/1956"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/160"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}