完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的问题是这样的: 我使用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配置的漏洞? |
|
相关推荐
1个回答
|
|
可能的原因是在程序下载完成后,JTAG引脚(SWDIO和SWCLK)被配置成了其他功能,导致无法再通过JTAG连接到芯片。
你在GPIO初始化中的代码是正确的,它将相关的引脚配置成了JTAG功能。但是,仅仅在初始化阶段配置一次是不够的,你需要确保在程序运行期间这些引脚不会被重新配置成其他功能。 有两种方法可以解决这个问题: 1. 在初始化完成后,配置引脚为JTAG功能。 你可以在main函数的最后添加以下代码: ``` HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI48, RCC_MCODIV_1); // 加入此段代码 ``` 这将使引脚保持为JTAG功能。 2. 禁用调试功能。 如果你不再需要通过JTAG调试程序,可以禁用调试功能,这样就不会再有引脚被配置成非JTAG功能。为此,你只需在MX_GPIO_Init函数中将调试功能选择为“无调试”(No Debug)。 ![禁用调试功能](https://i.imgur.com/uoBOOua.png) 尝试以上两种方法后,应该能够再次连接到芯片。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1649 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1566 浏览 1 评论
994 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
693 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1613 浏览 2 评论
1871浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
656浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
526浏览 3评论
543浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
515浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 15:54 , Processed in 0.865599 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号