5 n& f0 B9 f- H8 Y这套源码比较乱, ( s. i8 [* W. V7 G9 C2 e* O6 V - USB的底包是标准库的1 u2 f/ k7 d' j& d0 k( B
- 串口的驱动又要使用ARM的,迁就CMSIS-DAP源码 6 w: g: W C) P1 a; f - 混用了寄存器操作,标准库3 e2 A* Z+ i! } O2 X i
- 编译是在Keil v5的环境下,使用兼容v4的模式. z" |, d$ _( \7 k" H
: E" p* y+ K# J+ q/ @我曾经试图更换到CubeMX的环境,没有成功,CubeMX的USB驱动size太大,会超出64KB的限制。/ ` ~; L; N/ f
H! }6 H, A% h5 L
你的CDC测试了吗,我觉得没有问题了。
6 O: f7 R- T9 A$ A
我们用Bluepill板子时,是不需要Reset USB功能的,因为D+是固定用10k电阻拉高。建议您减少问题的复杂性,用起来先。+ S" S1 T3 V. d$ p. e6 e4 r$ @
另外,您上面的附图里面圈的hex文件,不是最后的版本,不知会有什么问题。建议使用一楼附件的版本。当然要改USB的D+线路。
Win10家庭版没有问题。5 i( I5 S7 @1 T5 c' }4 J6 X1 I
CDC功能和DAP功能是两个互相独立的功能,您可以试一试CDC是否正常先。
如果CDC正常,一般就是说DAP也正常,但是DAP的硬件连线比较复杂,出问题的地方多。1 M4 N) [6 c9 t% C! D: ?/ z- V; o) D
DAP是走HID通道的,你只要插入DAP的USB,在设备管理器里面就会多了一种HID设备。串口设备里面也会多了一个USB转串口的串口号码。拔掉USB线,上述HID和串口都会一起消失。 你先这样试一试。$ {; |9 W' F2 R- G1 ~1 ^. k
另外,你下载的固件,如果是你自己从源码编译的,就请先试一试我提供的编译好了的固件码。
这套源码比较乱,
- USB的底包是标准库的1 u2 f/ k7 d' j& d0 k( B
- 串口的驱动又要使用ARM的,迁就CMSIS-DAP源码
- 混用了寄存器操作,标准库3 e2 A* Z+ i! } O2 X i
- 编译是在Keil v5的环境下,使用兼容v4的模式. z" |, d$ _( \7 k" H
我曾经试图更换到CubeMX的环境,没有成功,CubeMX的USB驱动size太大,会超出64KB的限制。/ ` ~; L; N/ f
H! }6 H, A% h5 L
你的CDC测试了吗,我觉得没有问题了。
今天画了一天板,我现在试一下,谢谢R2R大神的热心帮助.
R2R大神,我下载了你的HEX文件后仍然是无法识别USB,所以我在USB上接了一个三极管拉低D+,现在可以识别到DAP,出现新的问题是DAPcommunication failed,是不是意味着我这个电路知识商店的一瞬间可以识别后面就再也识别不到了呢?我改的这个板子是STM32F103RCT6的板子,用的是BLUEPill的程序,理论上改了后使用rct6的swd引脚吧程序下载到目标板上是可行的,您知道为什么会出现出现communication failed吗?
我们用Bluepill板子时,是不需要Reset USB功能的,因为D+是固定用10k电阻拉高。建议您减少问题的复杂性,用起来先。+ S" S1 T3 V. d$ p. e6 e4 r$ @
另外,您上面的附图里面圈的hex文件,不是最后的版本,不知会有什么问题。建议使用一楼附件的版本。当然要改USB的D+线路。
出现DAPcommunication failed,在DAP正常的情况下(我是说至少一套硬件+软件正常工作过),多数是硬件问题,比如SWD和SWC接反了,目标板不能正常进入SWD模式,等等。
你现在还没有搞好DAP工具,那么问题原因又多了个DAP是否正常。, N0 E( M& y3 n6 I; J( h
CDC正常工作了没有?
R2R大神,我用修改的电路可以正常下载了,DAP连接出错的原因是我手多改了一下C/C++里面的宏,谢谢你的耐心帮助.
您这个图,是参考哪个CMSIS-DAP画的?. k/ I/ q% J7 Y- v3 F/ F- t
您可以试一试这个贴的108楼/109楼的固件,LED用的两条GPIO,需要修改一下。
! y6 u" P W5 X+ R7 I( G) s
PB8闪动,CDC正常,说明103内部的软件已经正常工作了。 检查硬件接线和KEIL的设置。
技新的电路应该没有问题,许多人试过的。