官方CUBE库里面没有USB主机兼USB设备的例子,因项目要求同一个USB口能支持U盘读写和与PC通信,自己就按照官方例子写了个例程。
程序实现了MSC主机和CDC设备的功能。设备处于哪种角色取决于ID线的状态:当ID线接地或插入microA接口时,设备工作于MSC主机模式;当ID线悬空或插入microB接口时,设备工作于CDC设备模式,在上电状态也可以热切换。
设备工作于MSC主机模式时,会在插入的U盘根目录创建“STM32.TXT”文件,并写入“This is STM32 working with FatFs ”文本。
设备工作于CDC设备模式时,在PC端会形成一个虚拟串口,PC通过串口发送给设备的数据,设备会回复给PC。





|