可能是因为你的USB相关初始化配置失败,我也是凌晨5点才找到原因并解决了问题,这些问题似乎是其他人没说过的。
①一个工程只能使用其中一个USB固件库,要在CDC库和HID库二选一。
②打开设备管理器,如果插USB之后提示“无法识别的USB设备”,需要检查USB的固件库和头文件(USB.h)有没有导入到工程里面,头文件有没有被主程序文件include进去。
③同样是设备管理器,看看有没有“未知USB设备(设备端口重置失败)”或者没找到对应的设备(没有“无法识别的USB设备”弹窗),如果发生这种情况,还需要检查有没有为“MAIN_Fosc”进行#define,因为USB固件库需要系统时钟用于调整工作速率。
- //需要提前在主程序声明的全局变量:
- char *USER_DEVICEDESC = NULL; //自定义设备描述符
- char *USER_PRODUCTDESC = NULL; //自定义产品描述符
- char *USER_STCISPCMD = "@STCISP#"; //设置自动复位到ISP区的用户接口命令
- #define MAIN_Fosc 52000000L //USB固件库自动调节时间需要的频率(STC32F用,不由代码和ISP调节频率,使用52MHz默认值)
复制代码
|