关于stm32f407 cherryusb初始化失败“This dwc2 version does not support dma mode, so stop working”问题
初学cherryusb,照着论坛帖子操作,将cherryusb软件包加入到407工程,编译完成后,下载,出现如下问题:
[I/USB] dwc2 has 1 channels and dfifo depth(32-bit words) is 0 [E/USB] This dwc2 version does not support dma mode, so stop working
通过反复确认,各种定位尝试,最终发现是usb模式配置和加入的底层初始化函数不匹配的错误导致:
本来我的目标是将usb口配置为usb -host模式,但是参考的是usb-device模式的帖子,增加了一个“usb_dc_low_level_init”函数,于是乎就出现了前面的错误。
定位到问题,将新增函数名修改为:usb_hc_low_level_init,启动,usb初始化成功:
[I/USB] ========== dwc2 hcd params ========== [I/USB] CID:00001100 [I/USB] GSNPSID:4f54281a [I/USB] GHWCFG1:00000000 [I/USB] GHWCFG2:229ed590 [I/USB] GHWCFG3:03f403e8 [I/USB] GHWCFG4:17f00030 [I/USB] dwc2 has 12 channels and dfifo depth(32-bit words) is 1012
不得不说,这个cherryusb确实是非常简洁易于移植和理解,感谢作者!
不过也提点意见,如果能够在桩函数里增加点提示性打印,都能够让初学者快速知道问题出现哪里,就不用浪费这么多时间来定位了……

浙公网安备 33010602011771号