
说明 最近在做了一个DAP调试器,完全开源的方案,大部分代码都是由STM32CUBEMX生成的,使用的STM32CubeIDE作为开发环境,集成共以下四种功能:% {( I- I% Z0 ` } 在线模式(在线调试用) 离线模式(脱机下载) U盘模式(用于离线模式时存放固件) 串口模式(USB转TTL串口功能)4 v5 b" |. z! Q( I 目前使用了正点原子的mini开发板做的测试,代码已经编写完毕并且调试通过,准备画个板子打个小板真正的做出实物来。 - a ]6 T1 u5 M# S+ _2 f 我为了节省IO所以使用的SWD方式,并且SWDIO和SWCLK使用的引脚是PB10和PB11,因为这两个引脚正好是串口3的RX和TX,这样的话串口模式和在离线模式共用IO,体现在实物上就是不需要在额外引出两个串口的引脚了。( h* P. ]$ @0 t4 o5 Z4 a : s3 k, z/ \2 y* O0 b% v 所以我全部的IO就四个:3.3V、GND、SWDIO(TX)、SWCLK(RX),市面上的SWD模式的DAP仿真器一般是5个引脚,多了一个硬件RST引脚。6 q6 h9 g- T# h6 K $ y* I* }6 y; c: e 我省略硬件RST引脚的原因有下:6 q& X8 C" | x L) i8 q 6 P! N& R. I% s3 x b( T! N, U4 v 1.实际中做板子时候STM32单片机的RST引脚一般直接拉高了,不会接出来 2.DAP大多数是使用软件复位! i% B; ~& n8 B4 @ 使用注意事项 1、关于KEIL设置8 z/ T6 }& U" n" Q , J- u5 i3 k: q: |/ z" V ![]() $ k4 N: r$ ]; l" q 如遇到RDDI-DAP Error,可能的原因及解决办法: 1.线太长,因为DAP速度较快线太长干扰较大(JTAG最快10M,SWD模式1M最稳定); p# t3 H! f, b. P- T. O2 P 2.与开发板的通讯时序出错(检查KEIL配置、连线、供电等,建议目标板单独供电)2 N6 Q( O0 m0 o+ n7 \ q3 u7 r. E/ \" S9 ? 2、可能遇到的其他问题8 @3 {0 i% W% l/ i8 e) J/ [& ` , h; c; N/ g7 q& {0 j 下载完成后把DAP拔下来,如果不断开DAP与开发板的连接,会导致程序无法运行;因为DAP在没有介入PC时,通过与目标板的连接会把 RST 引脚拉低,导致 MCU 一直处于复位状态。(不适用我做的这个,因为我没用RST引脚) 下载程序后不运行原因1: DAP 与开发板的连接没有接 RST 引脚时下载程序后 MCU 不会复位运行(DAP 采用的是硬件复7 m, e: E* I0 \7 L 位,即通过 RST 引脚连接进行复位,连接后还需要 MDK使能 Reset and Run) d* D7 N, p8 r& L! `- H 下载程序后不运行原因2: 在KEIL中选择SYSRESETREQ后下载程序后不会运行,SYSRESETREQ这个选项是软件复位启动,下载后程序不运行是因为SYSRESETREQ功能在使用CMSIS-DAP时没起作用,没有发出相应的软启动的命令 F! r! h: w1 ~9 d |
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【2025·STM32峰会】GUI解决方案实训分享2-编译运行TouchGFX咖啡机例程(含桌面仿真)
实战经验 | Keil工程使用NEAI库的异常问题
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
【经验分享】基于STM32使用HAL库实现USB组合设备CDC+MSC
2024意法半导体工业峰会:赋能智能电源和智能工业,构筑可持续未来
ST推出灵活、面向未来的智能电表通信解决方案,助力能源转型
意法半导体 x Qu-Bit Electronix:推动新一轮的数字声音合成革命