stm32F407(TJA1050)CAN通信成功--Apple的学习笔记

一,前言

最近我在公司玩单片机玩的不亦乐乎,好多开发板供我玩,总算MCU底层现在算告一段落。现在我又开始玩自己的开发板咯,之前stm32先移植了一个can,目的是测试买的TJA1050模块,以及自己买的canable设备。结果can不通,不过我用了公司开发板,验证了canable是正常的。TJA1050之前玩linux的时候也验证过是正常的。那么剩下的问题就是stm32我移植的can有问题。

二,瞬间解决问题

移植的can怎么会有问题呢?先猜测下复用引脚错误或者波特率选择的clock源不同导致波特率错误。果然看了code果然是这个原因。连示波器都不需要看了。
由于F429的主频为180M,而F407的主频为168M导致的原因。Can的时钟为PCLK1。HCLK和PCLK2及PCLK其实都是系统时钟,只是经过了分频。PCLK1是4分频。PCLK是在APH总线上的。
找到问题了,那么自己基于168M配置下波特率为500k即可。

三,工具都用起来

我双11还买了逻辑分析仪,因为家里示波器是10年前买的,很笨重。所以我这次配置完500k波特率,直接用逻辑分析仪查看下,完美的2us及能正确解析数据。上图。


image.png

那么完美的波形,这是回环模式测试的tx波形,那么我改成正常模式,且连接了TJA1050模块,结果一把则can通信正常。


image.png

我的连线如下,有图有真相
image.png

哈哈,干的漂亮!

四,总结

我家就是一个实验室呢!工欲善其事必先利其器,感觉逻辑分析仪比示波器好用多了。前几天还很快速的帮助我解决了spi的问题,而我的老示波器只有双路,不方便。这个逻辑分析仪我是爱不释手呢,需要把它利用起来,我要开动脑筋,继续想点小项目出来~


image.png

你可能感兴趣的:(stm32F407(TJA1050)CAN通信成功--Apple的学习笔记)