keil spi 调试_单片机软件出问题了?有经验的工程师这么调试

单片机软件调试方法有很多,今天我们来看一看都有哪些值得大家学习的调试方法。

欢迎关注哈,有搞单片机的北漂吗,来抱团取暖吧,关注私信入群

一、一切跟着手册走

单片机本身就是要驱动各类传感器,软件都是跑在最底层的,这样一来,各类时序波形调试相信大家都遇见过,比如IIC总线调试,SPI总线调试,CAN总线调试等等。

4569dbf02d51de3108f6f167bfb2cf7c.png

总线类的调试记住一个原则,一切以协议为准,这里的协议指的是你使用的芯片的协议描述,这一点很重要。

我们举个栗子,比如要使用stm32驱动一个SPI接口的ADC,很多同学的操作是,打开keil,找到库函数里面SPI的初始化函数,复制粘贴过去,再写一个读写函数,然后开始跑,发现并不好使,读不到数据,咋整?

看手册,这个ADC的SPI接口的时钟极性有没有要求,最大速率和最小速率有没有限制,传输bit数是多少,8bit?16bit?

要知道,SPI总线协议只是规定了各个参数的范围,具体到各个具体的传感器芯片旺旺会有特定的限制,你没有注意到这些,很可能就会掉进坑里。

二、二分法查bug

a6e224dd381a74bf7a88adb8b115ef00.png

我们调试软件的时候,经常会遇见死机问题,难点就在于无法定位死机的具体位置,一旦我们定位了出问题的语句,解决它就是分分钟的事情。

一个屡试不爽的方法就是二分法,把整个软件按照执行流程分为两部分,屏蔽掉后面的流程,观察还有没有死机现象,没有的话就说明导致死机的语句在后半部分,然后继续二分查找,相信用不了两次你就能把这个bug揪出来了。

这个方法我一直在用,很简单但是非常的有效。

三、构建log工具

e0c676e87a5f07b1847996103ef9617b.png

这个方法适用于资源相对丰富的MCU,可以构建一个log输出接口,实时输出我们感兴趣的日志信息。

log使用起来感觉非常棒,定位问题也非常快,简直是调试方法里的高富帅,根据log可以快速定位跟踪函数运行状况,跟踪变量状态等等,绝对是调试利器。

今天调试方法先讲这几个,明天我们用实际项目来实战,让大家见识见识这几种调试方法组合起来的巨大威力,欢迎关注。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值