[STM32F1] 将stm32的JTAG口的JDO、JNTRST脚用做普通管脚,总出现SWD口也...

[复制链接]
2750|8
 楼主| cl1517 发表于 2017-2-10 09:53 | 显示全部楼层 |阅读模式
如图所示连接电路图,JDO和JNTRST用做普通管脚,使用SWD模式下载程序。  程序中调用下面函数禁掉JTAG保留SWD口GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
使用过程中一般头2-3次下载程序都是正常。然后就会出现这种情况,jlink连接正常,但下载程序一直出错。如Flash Download faild等。只能换芯片了
cc.png
dd.png
mmuuss586 发表于 2017-2-10 13:16 | 显示全部楼层
先删除内部程序,再烧入;
 楼主| cl1517 发表于 2017-2-10 14:40 | 显示全部楼层
在烧录程序时,我已勾选了 Erase full chip .  下载时芯片中原来的程序已经被擦除了,但新程序烧不进去
 楼主| cl1517 发表于 2017-2-10 16:47 | 显示全部楼层
有人在使用STM32过程中有碰到过这种下载问题吗
皈依 发表于 2017-2-10 16:57 | 显示全部楼层
用错库函数了 应该用这个
GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);
 楼主| cl1517 发表于 2017-2-10 17:07 | 显示全部楼层
皈依 发表于 2017-2-10 16:57
用错库函数了 应该用这个
GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);

#define GPIO_Remap_SWJ_NoJTRST      ((uint32_t)0x00300100)  /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */
#define GPIO_Remap_SWJ_JTAGDisable  ((uint32_t)0x00300200)  /*!< JTAG-DP Disabled and SW-DP Enabled */
#define GPIO_Remap_SWJ_Disable      ((uint32_t)0x00300400)  /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */

我这边不只是将JNTRST脚作为普通脚,JDO脚也要用做普通IO口,用你的这个函数实现不了吧
皈依 发表于 2017-2-10 17:25 | 显示全部楼层
本帖最后由 皈依 于 2017-2-10 17:32 编辑
cl1517 发表于 2017-2-10 17:07
#define GPIO_Remap_SWJ_NoJTRST      ((uint32_t)0x00300100)  /*!< Full SWJ Enabled (JTAG-DP + SW-DP ...

PB3 PB4 PA15都用的话是用你那个函数的 但是没遇到过你说的那个问题。你可以先试试我说的 看看能不能操作PB3
xmshao 发表于 2017-2-10 17:48 | 显示全部楼层
用这个GPIO_Remap_SWJ_JTAGDisable没错 。
不过建议你检查下硬件连接,电源什么的。
pener 发表于 2017-2-11 08:53 | 显示全部楼层
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);                //¹Ø±ÕJTAGºÍSWDģʽ
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);        //¹Ø±ÕJTAG,´ò¿ªSWD
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

18

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部