fantasyhpu 发表于 2019-10-11 15:45$ ~" ^7 e T% M, |7 M) ^7 O$ c5 x
突然想起了,若用CMSIS-DAP,怎样对目标芯片直接烧录bin或hex呢?STLINKV2有STM32 ST-LINK Utility软件可用 ...
8 B+ W8 c* [3 i
因为我使用MDK/Keil,没有这个问题,都是刷axf文件。 如果遇到bin/hex,我就用STLINK或者JLINK。0 w4 M, I0 g) l* D% Y0 _- r l
! O6 |5 s6 G9 f' E
如果只有CMSIS-DAP要刷bin/hex文件,就要找一个支持CMSIS-DAP的,又有目标MCU烧录算法的“离线烧录/脱机烧录”的上位机软件,网上有很多,好像有的功能强大(比如可以写串码),很遗憾我一种也没有使用过。
这就是DAPLink的短板,要实现对F405进行拖拽下载,你所用的DAPLink固件,必须内含F405的编程算法,这就需要修改固件,详细一点的解释,请参考:# v& m- l* [0 k; Z0 L( h# f6 {
https://www.stmcu.org.cn/module/forum/thread-621670-1-3.html
感谢您的回复,确实DAPLINK还不明晰,我还是先放一放。
因为我使用MDK/Keil,没有这个问题,都是刷axf文件。 如果遇到bin/hex,我就用STLINK或者JLINK。0 w4 M, I0 g) l* D% Y0 _- r l
! O6 |5 s6 G9 f' E
如果只有CMSIS-DAP要刷bin/hex文件,就要找一个支持CMSIS-DAP的,又有目标MCU烧录算法的“离线烧录/脱机烧录”的上位机软件,网上有很多,好像有的功能强大(比如可以写串码),很遗憾我一种也没有使用过。
感谢
想在这个DAP上增加RTS,DTR信号,修改了一下代码:
(猜测正常情况下)串口的打开/关闭、DTR/RTS信号改变,都应该会调用 USBD_CDC_ACM_PortSetControlLineState()这个函数。
问题就出现在,DTR变化能调用到这个函数,RTS信号变花却没有调用。但可以从函数的参数上,看到上位机的RTS状态变化。也就是说USB底层没把RTS状态改变列入这个回调函数中。想问一下这个USB底层有开源吗?# N+ C1 k) Q4 x: i( ?
7 y4 y# L) M* P# y5 v' b
: H, C" a1 I; F
USB的底层使用ARM的USB库函数 USB_CM3.lib , 好像不是开源的:
http://www.keil.com/support/man/docs/rlarm/rlarm_usb_files.htm+ b( `! A0 `9 S, }% N3 u
http://www.keil.com/support/man/docs/rlarm/rlarm_lib_files.htm
应该没有问题的。 BluePill有两种固件,用法不同,您把问题说详细一点。
烧录BluePill版的程序,接上USB,能识别出虚拟串口,但在MKD上选择CMSIS-DAP调试器并且设置成SW模式,找不到芯片,提示SWD/JTAG Communication Failure
你的硬件连接有问题。
那就有点奇怪了
总之固件肯定没有问题,因为许多人都能用,我自己也是测试过的。
设置窗口的【SWJ】要选择上。如果你有多几块目标板,可以更换着试一试,把杜邦线分开试一试。