STM32F10x USB VCP unter Coocox

Gast #3501488
Lesenswert?
• ▲
▼
Hallo,

ich suche eine Implementierung um an einem STM32F10x den USB als VCP zu 
betreiben.
Ich habe hier den Artikel
http://www.mikrocontroller.net/articles/STM32_USB-FS-Device_Lib
gelesen. Der Link zum Download der V4 ist defekt. Auf der ST Seite finde 
ich auch nichts nur ne Menge Foreneinträge.
Vielleicht kann mir hier jemand auf die Sprünge helfen?
Vielleicht hat jemand den VCP auch mal in der Coocox umgebung umgesetzt 
?

Danke!

Gruß
ernst
(Firma: EleLa - www.elela.de) #3502038
Lesenswert?
• ▲
▼
ernst schrieb:
> Irgendwelche Fallstricke bei der Lib?

Fallstrike eigentlich nicht. Der Code und die Demos von ST bieten nicht 
nur VCP sondern auch HID, Audio und Massstorege und noch mehr. Da muss 
man die richtigen Dateien nehmen.

Ansonsten habe ich das define so geändert:
#define CDC_OUT_EP                      0x03  /* EP1 for data OUT */
sollte aber keine Rolle spielen.

In der Datei "usbd_cdc_vcp.c" kommen dann die Daten an und man kann da 
auch welche senden.

Im VCP_Ctrl() habe ich das geändert:
  case GET_LINE_CODING:
    Buf[0] = (uint8_t) (115200);
    Buf[1] = (uint8_t) (115200 >> 8);
    Buf[2] = (uint8_t) (115200 >> 16);
    Buf[3] = (uint8_t) (115200 >> 24);
    Buf[4] = 0;
    Buf[5] = 0;
    Buf[6] = 8;
    break;

denn ich nutze die Daten nur intern und ich habe alles mit "LineCoding" 
entfernt. Es ist völlig egal welche Baudrate, Parität usw. man im 
Terminalprogramm ein gibt, der VCP arbeitet immer mit der maximalen USB 
Geschwindigkeit.

Ich habe den Code stark verändern müssen, da ich den USB-VCP im 
Bootloader nutze und ich unbedingt nicht mehr als 32KB haben wollte (Bei 
Optimierung -O0). Bei Start wird der Bootloader mit USB immer 
initialisiert und mit einer definierten Sprungtabelle nutzt diese 
initialisierte USB Verbindung auch die eigentliche Applikation. Und der 
Bootloader sowie die Applikation ist in einem Projekt mittels speziellem 
Linker-Script speichermäßig geteilt. Daher kompiliere ich das mit GCC 
und makefile direkt mit Eclipse. Jedoch die Funktionalität im Code von 
ST ist unverändert - nur anders strukturiert.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.