插上电之后,显示无法识别,枚举不通过…… 看了电源指示灯后,发现插上那一刻,电源指示灯出现闪烁,估计是电源芯片烧了,如果只是如此还好,鱼鹰有备用的芯片,拆了换上就好,就怕主控 C8T6 芯片烧了,那就很麻烦了。 还好鱼鹰有一块 ST 官方开发板,内置 ST-link ,可以应应急,不然就耽误事了。 所以,有备用调试器和开发板是非常有必要的。
(左数第二个引脚为 SWO,第四为 CLK) PB3 怎么就把 ST-LINK 烧了呢?这是一个悲伤的故事,请听鱼鹰慢慢道来。 因为需要使用 PB3 引脚作为中断,所以鱼鹰对它做了初始化,但是发现在另一块板子(这块板子不用这个引脚)能正常进入中断的,到了这个新板子就不行了,主控都是一样的,所以怀疑这是一个特殊引脚。 鱼鹰赶紧百度了一下,果然,PB3 作为 J-TAG 的特殊输出引脚 JTDO。
鱼鹰赶紧把以前写的禁止该引脚的代码拷过来实验一下,发现根本不管用,这个代码可是鱼鹰大二时候就测试过验证的啊,不应该的。
然后上网搜了一下,发现网上的答案也是一样的,这就奇怪了。 鱼鹰不信邪,直接深入这个这个重映射函数里面,发现设置根本就不对:
鱼鹰再次用代码尝试控制电平状态,还是不行…… 见鬼,难道说这个窗口显示的电平状态在这个引脚不管用,IDR 寄存器没有实时反映电平? 为了验证这个问题,鱼鹰直接用逻辑分析仪确定,然后鱼鹰就悲剧了…… 因为鱼鹰的粗心,插错了引脚,导致短路了…… 鱼鹰顿时心态崩了,本来就因为这个引脚的问题,导致心烦意乱,现在还把它给烧掉了,掉了,了…… 鱼鹰就这么一个宝贵的 LINK,还特地用热缩管保护好,外面还有太上老君的“急急如律令”符纸镇压,生怕磕磕碰碰把它给烧了,谁知道还是改不了这个命运啊。
谁叫鱼鹰当初在焊接这个板子的时候,找不到自恢复保险丝,直接焊上了铁丝,所以悲剧了。
多少次,每次接反了引脚,都以为它要烧了,但依旧坚挺着,可这次咋没挺过来呢,默哀三分钟……
这个问题一直没想通,直到吃完饭再折腾的时候,意外的发现了一个地方:
当初鱼鹰在建立 uCOS II 模板时,直接把这个勾选了,而鱼鹰知道,这个功能和 ITM 有关(STM32 调试利器之 ITM),和 PB3 有关,然后鱼鹰好像突然就开悟了。
对,就是它搞得鬼,等我把这个勾选去掉之后,一切回到了本来的样子,引脚窗口没问题,直接修改控制也没问题,一切都正常了,世界终于清静了。
还好,鱼鹰没见到鬼,只是有人捣乱而已。