查看原文
其他

STM32开发调试受阻的二三个案例分享

Miler 茶话MCU 2022-09-10

我们在做MCU产品开发时难免会遇到各种问题或麻烦。这里分享几个跟硬件或工具有关的案例,抛砖引玉,期望看官能有所启示,适当的时候能帮上你。


案例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管脚接反的情况。这些无意之错,往往容易被人忽视。但小问题,小细节可以让人栽大跟头,浪费时间、耗时耗力。分享这些,愿各位的产品开发尽量顺山顺水。


============================

往期话题链接:

1、获取ST MCU技术资料及相关支持的方式与途径

2、使用HSI无法将PLL倍频到64M的话题

3、IAR环境下从CCM RAM执行程序的介绍

4、关于读取STM32 RTC 日历值不更新的话题

5、一个关于USART 传输标志TXE/TC 的话题

6、一个关于定时器输入捕捉测量周期的话题

7、聊聊ST MCU定时触发ADC的话题

8、一个跟STM32中断优先级有关的话题


扫描或长按二维码可关注公众号

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存