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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版