Announcement: New open-source USB library for STM32F103xx MCUs
I have just released a new 1.2.0 update to my open-source USB library for STM32F103xx MCUs:
https://github.com/thanks4opensource/papoon_usb
papoon_usb is a lightweight, efficient, cleanly-designed library for the USB Device peripheral in the STMF103xx (and similar) MCUs. Its API makes USB very easy to use from application code. It comes with four USB device class implementations -- USB-CDC, USB-MIDI, USB-HID, and a custom minimal data class -- and new USB classes are similarly easy to implement (basically just add the appropriate USB descriptors).
The source code is released under the GNU General Public License (GPL).
The library is written in C++ using updated versions of my "regbits" and "regbits_stm" development frameworks, which are included in the papoon_usb repository. There are no external dependencies. Usage of regbits in the library is transparent, and applications need not use it (although they would benefit from doing so). Additionally, examples of C wrappers to the library are included in case linkage with pure C code is needed for some reason.
Fair notice: The README documentation contains a large number of highly critical, opinionated statements regarding the design of the USB standards and of ST's hardware and particularly software (HAL) implementations of them. Reading, much less agreeing with, them isn't required for use of the library, but they are probably unavoidable if browsing the document to understand how to use the library. Those easily offended may want to stick with the documentation in the header files and the example application source code provided, although the README does contain important library usage and design background information.
Feedback in the form of comments, bug reports, improvements, and disagreements with the opinions expressed above are welcome, either here on community.st or as "Issue" reports on GitHub. (Note that this statement should not be considered a guarantee of support or fixes.) At some point in the future I may write a similar library for the very different USB peripheral implementations in the STM32F7, etc. product lines -- again, not a promise. Administrators: Feel free to move this post to a different sub-forum as appropriate, or remove it entirely given the descriptions of criticisms described above.
