完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在忙着搞NRF无线通信,之前请人帮忙画了一块板子,用了 PB3 引脚作为模块的 IRQ 中断引脚,然后把一块自制 ST-LINK 烧掉了……
插上电之后,显示无法识别,枚举不通过…… 看了电源指示灯后,发现插上那一刻,电源指示灯出现闪烁,估计是电源芯片烧了,如果只是如此还好,鱼鹰有备用的芯片,拆了换上就好,就怕主控C8T6芯片烧了,那就很麻烦了。 还好鱼鹰有一块 ST 官方开发板,内置 ST-link ,可以应应急,不然就耽误事了。 所以,有备用调试器和开发板是非常有必要的。 (左数第二个引脚为 SWO,第四为 CLK) PB3 怎么就把 ST-LINK 烧了呢?这是一个悲伤的故事,请听慢慢道来。 因为需要使用 PB3 引脚作为中断,所以对它做了初始化,但是发现在另一块板子(这块板子不用这个引脚)能正常进入中断的,到了这个新板子就不行了,主控都是一样的,所以怀疑这是一个特殊引脚。 赶紧百度了一下,果然,PB3 作为J-TAG的特殊输出引脚 JTDO。 赶紧把以前写的禁止该引脚的代码拷过来实验一下,发现根本不管用,这个代码可是鱼鹰大二时候就测试过验证的啊,不应该的。 然后上网搜了一下,发现网上的答案也是一样的,这就奇怪了。 不信邪,直接深入这个这个重映射函数里面,发现设置根本就不对: 设置的是0x02000000,而不是上面这个,如果是上面这个,直接关闭所有调试接口了,那我在和谁调试,空气吗?(后来才知道,这个值读取的时候返回未定义的值) 因为引脚的电平状态我是直接在线调试看的,按理说它显示的状态就是引脚的实际状态才对,但实际情况就是它始终是低电平。 为了快速确定该引脚的功能,鱼鹰直接在这个窗口上修改引脚配置信息(前提是该端口时钟打开),配置为输出模式,同时控制电平输出: 发现还是不管用,还是表现为低电平,难道窗口设置的没有效果? 再次用代码尝试控制电平状态,还是不行…… 见鬼,难道说这个窗口显示的电平状态在这个引脚不管用,IDR 寄存器没有实时反映电平? 为了验证这个问题,直接用逻辑分析仪确定,然后就悲剧了…… 因为粗心,插错了引脚,导致短路了…… 顿时心态崩了,本来就因为这个引脚的问题,导致心烦意乱,现在还把它给烧掉了,掉了,了…… 就这么一个宝贵的LINK,还特地用热缩管保护好,外面还有太上老君的“急急如律令”符纸镇压,生怕磕磕碰碰把它给烧了,谁知道还是改不了这个命运啊。 谁叫当初在焊接这个板子的时候,找不到自恢复保险丝,直接焊上了铁丝,所以悲剧了。 多少次,每次接反了引脚,都以为它要烧了,但依旧坚挺着,可这次咋没挺过来呢,默哀三分钟…… 这个问题一直没想通,直到吃完饭再折腾的时候,意外的发现了一个地方: 当初在建立uCOS II 模板时,直接把这个勾选了,知道这个功能和 ITM 有关(STM32调试利器之ITM),和 PB3 有关,然后好像突然就开悟了。 对,就是它搞得鬼,等我把这个勾选去掉之后,一切回到了本来的样子,引脚窗口没问题,直接修改控制也没问题,一切都正常了,世界终于清静了。 |
|
|
|
只有小组成员才能发言,加入小组>>
3314 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9059 浏览 16 评论
4088 浏览 18 评论
1178浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 09:57 , Processed in 1.469128 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号