在开发构成中,最令人抓狂的问题无非就是一次有一次的出错。不过有些错误完全可以被避免的,比如一味的调试STM32F103的硬件I2C,就会花费很多的时间。
在此 ,我根据我所用过的一些STM32的芯片,列出几个无论怎么调试都通不过的例子,具体是程序错误还是硬件错误,大家还是作为参考吧。本人使用STCUBEMX调试,简单快速。
1:STM32F103系列的硬件I2C接口,无法与AT24C02 储存器芯片正常通讯,用逻辑分析仪检测单片机B6,B7引脚,根本无信号输出。换成软件I2C能正常通讯
(同样的硬件配置能该储存器芯片能与STM32F407,STM32F429,STM32F746芯片正常通讯,顾可判定软件配置无误,硬件BUG可能性较大)
2:STM32F407系列的AD转换。无法正常转换,转换结果始终在100以下与4000以上,无法得出较为精确的转换结果。(同样的HAL配置在STM32F103,STM32F429,STM32F746系列中可正常返回转换结果,软件配置无误,硬件BUG肯能性较大)
3:STM32F407系列的DA转换,无法正常输出电压,对应引脚始终输出为低电平。(同样HAL配置在STM32F429,STM32F746系列中可正常使用,硬件故障几率较大)
(本测试均使用两片不同的芯片对同一故障进行多次反复测试,最大的排除了芯片次品的可能性,测试结果供大家参考,不做任何分析)
大家有发现任何写的不对的地方希望指出,也同样希望大家发现任何的硬件问题及时回复,本人会陆续添加,
为减少一些不必要的时间浪费而努力。 |