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

关于STM32F103的I2C1引脚Remap后导致SWD无法复位单片机的问题

[复制链接]
zwmasdf 提问时间:2017-12-21 10:39 /

使用CUBEMX开发,当使能I2C1并且将引脚重映射至PB8和PB9后,使用JLINK的SWD4线(VDD,SWDIO,SWCLK,GND)将程序烧进去后想要再烧一遍发现JLINK无法烧录了,提示复位CPU失败。一句自己的代码也没有
xxx.png 无标题x.png 时钟用的是8M的HSE,其他设置没动过。奇怪的是把I2C改为默认的PB5和PB6或者是将RESET脚接到JLINK上,又可以实现正常烧录了,请问,这是为什么
无标题.png
无标题2.png
无标题3.png
无标题6.png
收藏 评论9 发布时间:2017-12-21 10:39

举报

9个回答
adlu 回答时间:2017-12-22 11:58:17
居然有这种事?
没遇到过,帮顶一下
maxtch 回答时间:2017-12-23 01:02:21
J-Link 上的复位线接了没?(这个问题我见的太多了……)
浪花雷雨 回答时间:2017-12-25 09:03:31
帮顶
zwmasdf 回答时间:2017-12-26 08:24:52
maxtch 发表于 2017-12-23 01:02
J-Link 上的复位线接了没?(这个问题我见的太多了……)

复位不是必须接的,如果SWD复用的话复位必须接,我没复用,
问题我是找到了__HAL_RCC_I2C1_CLK_ENABLE();这句话会导致SWD被禁用,不信你可以试试
maxtch 回答时间:2017-12-26 12:06:48
zwmasdf 发表于 2017-12-26 08:24
复位不是必须接的,如果SWD复用的话复位必须接,我没复用,
问题我是找到了__HAL_RCC_I2C1_CLK_ENABLE(); ...

那就是 HAL 的暗病咯。我反正不用 HAL,不会遇到这种问题。
zwmasdf 回答时间:2017-12-27 12:30:03
maxtch 发表于 2017-12-26 12:06
那就是 HAL 的暗病咯。我反正不用 HAL,不会遇到这种问题。

不是,你直接寄存器操作也是这样的情况,__HAL_RCC_I2C1_CLK_ENABLE()最终的操作就是寄存器的相关位设置
maxtch 回答时间:2017-12-27 19:53:38
zwmasdf 发表于 2017-12-27 12:30
不是,你直接寄存器操作也是这样的情况,__HAL_RCC_I2C1_CLK_ENABLE()最终的操作就是寄存器的相关位设置 ...

我从没遇到过这种情况。理论上说不接 RESET 应该可以用 SWD,但实际上不接 RESET 的 SWD 我遇到过太多问题了(NXP、ST 和 Microchip 的都有)。我是疲于追根究底,索性就直接记住不论用什么调试口都要接复位线了。
zwmasdf 回答时间:2017-12-29 08:08:35
maxtch 发表于 2017-12-27 19:53
我从没遇到过这种情况。理论上说不接 RESET 应该可以用 SWD,但实际上不接 RESET 的 SWD 我遇到过太多问 ...

我从不接RESET,做过这么多项目第一次遇到这样的问题
maxtch 回答时间:2017-12-29 11:48:02
zwmasdf 发表于 2017-12-29 08:08
我从不接RESET,做过这么多项目第一次遇到这样的问题

ST 可以不接 RESET,不过我用过的某厂家把 SWD 设计成了必须接 RESET 才能用,习惯了。另外,ST 某些芯片从空白状态编程必须接 RESET。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版