GithubHelp home page GithubHelp logo

erlkoenig90 / f1usb Goto Github PK

View Code? Open in Web Editor NEW
27.0 8.0 2.0 238 KB

Einfaches Beispiel für die Entwicklung eines USB FullSpeed Device auf Basis des STM32F103 ohne die Verwendung externer Bibliotheken

License: BSD 2-Clause "Simplified" License

C++ 7.57% C 90.41% Assembly 2.02%
stm32 usb usb-devices demonstration

f1usb's Introduction

f1usb

Dies ist ein einfaches Beispiel für die Entwicklung eines USB FullSpeed Device auf Basis des STM32F103 ohne die Verwendung externer Bibliotheken, nur durch Low-Level-Registerzugriffe. Es sind vier Varianten gezeigt:

  • Der master-Branch zeigt ein (erweiterbares) Beispiel für eigene Requests auf dem Default Control Endpoint zum Setzen und Abfragen von LED's, und einem simplen Loopback auf dem Bulk Endpoint 1. Das Device ist als "WinUSB Device" deklariert und braucht somit ab Windows 8 keine Treiber, es kann bspw. mit libusb direkt darauf zugegriffen werden. Siehe dazu auch das Projekt usbclient.
  • Im minimal-Branch ist eine gekürzte Variante mit gleicher Funktion.
  • Der vcp-Branch-Branch implementiert einen 3-fachen virtuellen COM-Port ("VCP") (auch als USB-Serial/RS232-Adapter bekannt) auf Basis der Standard-Klasse CDC-ACM, die direkt ohne Treiber genutzt werden kann.
  • Der usbpower-Branch meldet beim PC einen Stromverbrauch von 500mA an und signalisiert über den Pin PA5, wenn der PC den Strom freigegeben hat (via SET_CONFIGURATION). Hier meldet sich das Gerät ebenfalls als WinUSB Device an. Pin und Strom können im Code eingestellt werden.

Dies ist der Beispielcode für dieses Tutorial zur Entwicklung eigener USB-Geräte.

Der Code ist für den STM32F103RBT6 eingestellt. Als Pinout wird das des Olimexino-STM32 angenommen (insb. mit PC12 zum Einschalten des 1,5kΩ-Widerstands auf der D+ -Leitung). Beides kann aber leicht angepasst werden.

Im Code sind die fiktiven VID und PID 0xDEAD bzw. 0xBEEF eingestellt; dies sollte auf korrekte Werte angepasst werden.

Im Repository befinden sich zip-Archive, welche Projektdateien für verschiedene IDE's beinhalten. Zur Nutzung der entsprechenden IDE muss das Archiv einfach nur direkt in das Projektverzeichnis entpackt werden.

Dateiname Zugehörige Entwicklungsumgebung
Atollic_TrueSTUDIO.zip Atollic TrueSTUDIO Lite
gnu-mcu-eclipse.zip eclipse-cdt mit GNU MCU Eclipse-Plugins und GNU Arm Embedded Toolchain in der Version 6.3.1 (Juni 2017)
sw4stm32.zip System Workbench for STM32
Keil-MDK.zip Keil MDK 5 unter Nutzung des Clang-basierten Compiler Version 6

Auf der Releases-Seite sind fertige Binaries für den direkten Download auf den Controller verfügbar.

Lizenz

Dieser Code steht unter der BSD-Lizenz, siehe dazu die Datei LICENSE.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.