USB in the F411 is "OTG" (on the go) meaning that it can act like either a host or a peripheral (device). But not both. The design if from Synopsys, but we can be thankful that we have complete documentation for it (almost 140 pages) in the reference manual (RM0383).
This project looks wonderful:
Interestingly, the same fellow has a XVC (Xilinx Virtual Cable) project for the F103 that also includes USB code. Who knows what other treasure lurk in his repositories. And this, by another author.Tom's Computer Info / tom@mmto.org