zhujinwei317 发表于 2019-12-17 08:41:49

STM32H750芯片通过JTAG烧录一次程序后,就连接不到芯片

我的问题是这样的:我使用STM32CubeMX配置的工程,第一次用JTAG可以连接到芯片,但当程序下载完成后,就再也连接不到芯片了,这是什么原因?我已经在GPIO初始化中,人工增加了以下代码:
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF0_SWJ;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF0_SWJ;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

但是还是有同样问题。(我外部晶振是接24MHZ,程序配置成480Mhz运行)

看我的配置管脚图的话,我感觉我写了初始化代码是对的,然后我感觉是否是STM32CubeMX配置的漏洞?

wenyangzeng 发表于 2019-12-17 09:37:57

PA13、PA14是SDW下载接口,楼主将其挪作它用,当然下一次就无法下载了。使用ST-LINK Utility工具全片删除,并把这2口修改成用其他口代替。

toofree 发表于 2019-12-17 09:38:30

一般情况是JTAG(SWD)口被关了。

hujjj 发表于 2019-12-17 09:43:33

我也遇到过,开始学习STM32F103时不小心将JTAG关闭了,开始还以为系统板坏了,重新买了一块最小系统板,同样是无法烧录第二次,最后发帖求助才明白是关闭了JTAG。

mikecai 发表于 2019-12-17 09:51:43

啊,当您用 cubeMX 选上 SYS 的Debug 为 Serial Wire时【JTAG 打开 啊】 ,
没注意到 PA13、PA14是SDW下载接口 变绿色了?

す疯Ⅱ恒す 发表于 2019-12-17 09:57:44

把JATG上的复位引脚也一起用来烧录吧。ST-link也是一样的。你在程序里修改了下载引脚的功能,不能被识别很正常。也很简单,在系统复位阶段,这两个引脚还是可以作烧录用,所以用复位脚一起,烧录的时候,会自动先发复位信号,然后就可以正常烧录了。

mmuuss586 发表于 2019-12-17 10:33:14

JTAG接口被禁用了

发表于 2019-12-17 10:35:42

进入BOOT模式可以解决重新下载程序的问题。

zhujinwei317 发表于 2019-12-17 19:56:34

GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF0_SWJ;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

不是很理解,我以上代码,不就是定义PA13和PA14复用为JTAG么?

zhujinwei317 发表于 2019-12-17 19:57:38

GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF0_SWJ;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

我以上定义,不就是复定义PA13和PA14为JTAG么?   不知道哪里不对了?
页: [1] 2 3
查看完整版本: STM32H750芯片通过JTAG烧录一次程序后,就连接不到芯片