STM32的DAP仿真器不能使用
JTAG Device Chain Error怎么解决
JTAG Device Chain Error错误
最近一直在学习STM32系列的相关知识。由于手上没有仿真器,所以一直使用串口下载程序,所使用的工程也是有cubemx生成的。然而在keil中使用DAP下载器下载、调试程序时,发现不能调试。显示如下错误:Device Chain Error
如何解决
经过翻找资料,发现应该是先前的程序禁用了JTAG下载,在keil中查看代码,发现果然如此。
void HAL_MspInit(void)
{
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
__HAL_RCC_AFIO_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE();
/* System interrupt init*/
/** DISABLE: JTAG-DP Disabled and SW-DP Disabled
*/
__HAL_AFIO_REMAP_SWJ_DISABLE();
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
已经下载的程序在初始化的时候,禁用了JTAG-DP,SW-DP。所以导致不能使用。
如何解决呢,可以修改以上的代码,将__HAL_AFIO_REMAP_SWJ_DISABLE();改成__HAL_AFIO_REMAP_SWJ_ENABLE(); 。
然后编译,最后通过串口下载(可用flymcu等)程序,然后就可以使用DAP仿真器调试程序了。
打开魔术棒,发现正常了