miniSTM32F103rbt开发板 JTAG出错

2019-08-13 23:18发布

本帖最后由 DYWEWHY 于 2017-4-6 18:34 编辑

**JLink Warning: CPU could not be halted
***JLink Error: Can not read register 15 (R15) while CPU is running
***JLink Error: Can not read register 16 (XPSR) while CPU is running
***JLink Error: Can not read register 0 (R0) while CPU is running
***JLink Error: Can not read register 1 (R1) while CPU is running
***JLink Error: Can not read register 2 (R2) while CPU is running
***JLink Error: Can not read register 3 (R3) while CPU is running
***JLink Error: Can not read register 4 (R4) while CPU is running
***JLink Error: Can not read register 5 (R5) while CPU is running
***JLink Error: Can not read register 6 (R6) while CPU is running
***JLink Error: Can not read register 7 (R7) while CPU is running
***JLink Error: Can not read register 8 (R8) while CPU is running
***JLink Error: Can not read register 9 (R9) while CPU is running
***JLink Error: Can not read register 10 (R10) while CPU is running
***JLink Error: Can not read register 11 (R11) while CPU is running
***JLink Error: Can not read register 12 (R12) while CPU is running
***JLink Error: Can not read register 13 (R13) while CPU is running
***JLink Error: Can not read register 14 (R14) while CPU is running
***JLink Error: Can not read register 15 (R15) while CPU is running
***JLink Error: Can not read register 16 (XPSR) while CPU is running
***JLink Error: Can not read register 17 (MSP) while CPU is running
***JLink Error: Can not read register 18 (PSP) while CPU is running
***JLink Error: Can not read register 20 (CFBP) while CPU is running


运行《ALIENTEK MINISTM32 实验2 按键实验》,使用JLINK进行调试,按下KEY0,出现以上错误,明显是JTAG没有禁用的提示。
经检查没有启动AFIO时钟,遂加之。编译运行,仍然是上述结果。但是程序中已经禁用JTAG,启用SWJ。
我就不懂了,这是怎么回事呢?
程序可以正常运行,只是KEY0按键一按就出现上述提示。KEY0接口为PC5,与JTAG没什么关系啊,反而跟JTAG有关系的PA15可以正常使用。

附上KEY初始化代码:
void KEY_Init(void)
{
        
        GPIO_InitTypeDef GPIO_InitStructure;

         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE);//使能PORTA,PORTC时钟

        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//关闭jtag,使能SWD,可以用SWD模式调试
        
        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_15;//PA15
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
         GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA15
        
        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_5;//PC5
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
         GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIOC5

        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;//PA0
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0设置成输入,默认下拉         
        GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.0
        
}


如果初始化代码没错,哪里错了呢?



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
JUSTNIUB
1楼-- · 2019-08-13 23:48
 精彩回答 2  元偷偷看……
DYWEWHY
2楼-- · 2019-08-14 04:17
JUSTNIUB 发表于 2017-4-6 18:15
看这个情况像是按键引脚与JTAG引脚冲突了

关键是正点原子的开发板和源程序,看不懂哪里出问题了。
DYWEWHY
3楼-- · 2019-08-14 06:39
网上看到了一些,但是根本不靠谱啊,有没有人遇到同样的情况呢?
szczyb1314
4楼-- · 2019-08-14 12:27
本帖最后由 szczyb1314 于 2017-4-7 11:13 编辑

JLink的JTDI就是PA15引脚,引脚冲突。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//关闭jtag,使能SWD,可以用SWD模式调试                 这句是人家的关闭jtag使能swd,但是你的jlink可能不支持SWD模式,一直是jtag模式,JLink的JTDI就是PA15引脚,造成引脚冲突。
如果你的jlink真的不支持swd模式,那就换个引脚做这个试验,自己按照原理焊个小按键接到其它的引脚上,把这个引脚初始化,程序对应的改改就行了
DYWEWHY
5楼-- · 2019-08-14 14:18
szczyb1314 发表于 2017-4-7 11:08
JLink的JTDI就是PA15引脚,引脚冲突。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//关闭j ...

所以以后设计的时候,坚决不复用JTAG。不过下载进去之后,只是不能用JTAG调试,烧进去之后可以正常运行。
pingfanchen
6楼-- · 2019-08-14 15:25
 精彩回答 2  元偷偷看……

一周热门 更多>