您的位置:首页 > 其它

STM32——由CAN调试想到的调试过程总结

2017-08-31 12:20 288 查看
经历了前前后后大概一个半月的时间,总算把实验室自制电路板的CAN总线调通。过程真的应该记录一下。

调试过程:

首先在现有电路板的基础上,一上手肯定是先写程序。实验室原来的程序都是基于HAL库编写的,可是我只熟悉标准库。一开始我侥幸地认为,两个库混用应该没有什么问题。就直接建立了can的驱动文件,但是用了很长时间,CAN还是没有调通,甚至回环测试都没有通过。

接下来我就陷入了不断质疑HAL库和标准库不能混用的迷茫中,于是提出了将所有代码换成标准库。

暑假,我就做了这一件事,把实验室之前的HAL库代码全部换成了标准库代码,这期间也学习了很多。因为硬件电路是实验室自己设计的,所以很多地方跟之前直接拷贝代码直接用差别太大。在机械群里问大神们的时候,跳出来一个人说“STM32不就是直接拷一下代码不就好了么?怎么这都不会做?”

假期回来,全部代码更改为标准库之后,我的CAN模块还是没有调试好,回环测试已经通过,但是让我疑惑的是在回环测试中用示波器测试引脚的时候,TX和RX引脚的波形恰恰相反。

normal模式下的调试还是一直调试不出来,已经一个多月了,我快疯了>_<

这个时候,我才想起来仔细地检查前人画的电路图,我的天,真的,真的,我没有看错,MCU的CAN_TX 和CAN_RX引脚与Transreciever的设计的时候画反了。

重新焊接之后,随便下载个CAN的程序就跑起来了。

通过这次长时间的调试,总结经验如下:

1、电路调试,要先硬件,再软件,硬件都没有连接好,怎么能够直接调试软件呢?

2、第一点重申的基础上要敢于质疑前人的工作,如果一味地觉得前人的工作都是正确的,可能会耽误很多的时间。

3、在这个过程中,我其实一开始不用纠结HAL库和标准库,可以先单个的用某个库先把CAN的这一部分调试成功,也许能够尽早发现问题。

4、沉浸在调试不成功的情绪里走不出来浪费了很多精力和时间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: