STMCubeMX 生成UART3 REMAP 导致SWD不可用问题解决

公司分了两个实验室, 隔壁实验室做的一块电路板生产了 200片左右,结果被他们废弃了,我想着拿过来玩玩,毕竟都是钱么。但是由于扯皮, 他们没给电路板的任何一点资料…….

PCB.jpg

遂打开我的CubeMX, 话说CubeMX 真贴心,还能旋转STM32 的方向, 然后跑了一遍板子, 使用STM32CubeMX 初始化板子

QQ截图20180210160602.jpg

其实代码真心不这么麻烦,STM 公司的HAL 库抽象的还是挺利索的, 没一会代码就写完了, 可是烧上一次以后第二次死活烧不上了, 想起这批板被他们量产过,是不是开启过某些锁,但是回头一看, DEBUG模式可以到main函数第一行,但是跑到

MX_USART3_UART_Init();

这一行以后SWD调试器就挂了………….

百般思考以后, 逐行调试,结果跟到一个宏后面调试器就挂了……

__HAL_AFIO_REMAP_USART3_PARTIAL

进去一看,心情豁然开朗

QQ截图20180210161250.jpg

尼玛这CubeMX 重映射的时候把 RTS 流控的引脚也给重映射了, PB14 正好是 SWCLK

于是乎,在 /* USER CODE BEGIN 2 */ 中添加  __HAL_AFIO_REMAP_SWJ_ENABLE(); 重新使能SWD

 

问题解决!

 

PS: 我还以为他们量产完了加了什么神奇的防调试的东西……………………

 

发表评论