案例1、STlink连接不上
某客户使用STM32芯片做产品开发,发现STlink总是连接不上。
单纯说STlink连不上目标板,原因往往很多。连接线接错啊、电源有问题啊、驱动固件有问题啊,等等。具体到该案例,客户这些方面都没发现问题,它使用的山寨版STlink,通过杜邦线将STlink上的SWCLK/SWDAT/GND与目标板的SWD接口相连。当它将连接线的长度从50多厘米改为10cm时就正常了,看来连接线太长了。
因为连线问题导致无法调试的情况,也不少见。记得有一次客户使用STM32F2芯片开发,当他使用STlink Utility软件尝试连接目标板时,发现怎么也连不上,死活就是找不到原因。无奈之下建议过去一起看看。我带上一套官方STlink过去,用我的STlink及USB连线一连就OK。很快发现是他的那跟USB线有问题,客户瞬间哑然。原来栽在那根线上面。
这里顺便多说几句。ST官方的STlink的有个VDD脚要外接目标板的电源,用来检测STlink是否与外面目标板相连。另外,目标板也必须自行供电,STlink是不对外供电的。毕竟它根本不知道目标板可能会需要多大的功率。至于山寨版STlink另当别论,是否有隐患自行斟酌使用。
案例2、串口显示不正常
某客户使用STM32芯片做产品开发,使用串口打印输出到PC上时发现显示数据异常。
调试时使用串口打印输出很常见,经常也有人在这里遇到点麻烦。单从异常来讲,原因依然不少。比如:UART本身的参数配置问题;PC端驱动问题;PC端串口助手的参数配置问题;线路连接问题;USB转串口适配器的问题等。几经折腾,后来客户发现,当换了另外一个串口助手软件后一切正常了。这个好像也经常有人碰到。
案例3、调用I2C发送功能后总线被拉低且无任何输出
某深圳客户,使用STM32L0开发产品时用到I2C外设,它反映初始化后,调用HAL_I2C_Master_Transmit()函数,发现在调用发送后,I2C总线被拉低无任何波形发生。
刚开始以为是时钟和时序方面的问题,反复排查和使用官方提供的现成I2C工程项目比对测试,异常依旧,只差没怀疑芯片质量问题了。后来发现硬件焊接时出现短路情况了,排除故障后I2C工作正常。
我也曾见过有人使用USART或CAN时将TX/RX管脚接反的情况。这些无意之错,往往容易被人忽视。但小问题,小细节可以让人栽打跟头,浪费时间、耗时耗力。分享这些,愿各位的产品开发顺风顺水。
快包相关任务:
方案超市相关内容: