你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
zhujinwei317 提问时间:2019-12-17 08:41 /
我的问题是这样的:  我使用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配置的漏洞?

这是我的配置管脚

这是我的配置管脚
收藏 评论21 发布时间:2019-12-17 08:41

举报

21个回答
zhujinwei317 回答时间:2019-12-17 19:59:22
wenyangzeng 发表于 2019-12-17 09:37
PA13、PA14是SDW下载接口,楼主将其挪作它用,当然下一次就无法下载了。使用ST-LINK Utility工具全片删除, ...

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么?   不知道哪里不对了?
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么?
wenyangzeng 回答时间:2019-12-17 09:37:57
PA13、PA14是SDW下载接口,楼主将其挪作它用,当然下一次就无法下载了。使用ST-LINK Utility工具全片删除,并把这2口修改成用其他口代替。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

七哥 回答时间:2019-12-17 09:38:30
一般情况是JTAG(SWD)口被关了。
老牛洋车 回答时间:2019-12-17 09:43:33
我也遇到过,开始学习STM32F103时不小心将JTAG关闭了,开始还以为系统板坏了,重新买了一块最小系统板,同样是无法烧录第二次,最后发帖求助才明白是关闭了JTAG。

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

慎微 回答时间:2019-12-17 09:51:43
啊,当您用 cubeMX 选上 SYS 的Debug 为 Serial Wire时【JTAG 打开 啊】 ,
没注意到 PA13、PA14是SDW下载接口 变绿色了?
疯de_恒 回答时间:2019-12-17 09:57:44
把JATG上的复位引脚也一起用来烧录吧。ST-link也是一样的。你在程序里修改了下载引脚的功能,不能被识别很正常。也很简单,在系统复位阶段,这两个引脚还是可以作烧录用,所以用复位脚一起,烧录的时候,会自动先发复位信号,然后就可以正常烧录了。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

mmuuss586 回答时间:2019-12-17 10:33:14
JTAG接口被禁用了
废鱼 回答时间:2019-12-17 10:35:42
进入BOOT模式可以解决重新下载程序的问题。
zhujinwei317 回答时间:2019-12-17 20:08:57
我配置的STM32CubeMX   的管脚和设置见界面,但是好像提示说   不支持debug设置,得人工自己编写代码,是不是一个坑
微信图片编辑_20191217200431.jpg
zhujinwei317 回答时间:2019-12-17 20:23:08
我把图已经上传了,我还是不明白是哪里不对
zhujinwei317 回答时间:2019-12-18 08:48:59
我重新换了一个芯片   然后通过STM32CubeMX把 DEBUG设置成Serial Wire,再烧录芯片,同样出现一样的问题,问题还是没有解决
ikxlf 回答时间:2019-12-18 09:09:06
PB3  PB4 为JTAG管脚 你重新定义了 就只能用SWD模式烧写,你把keil中的烧写方式更改成SWD
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版