您的位置 首页 培训

STM32的CAN使用测验

最近向系统的学习一下CAN总线的应用,苦于找不到合适的板子来做实验。刚好看到STM32单片机自带有CAN控制器,就想通过STM32作为载体来学习一

最近向体系的学习一下CAN总线的运用,苦于找不到适宜的板子来做试验。刚好看到STM32单片机自带有CAN操控器,就想经过STM32作为载体来学习一下CAN总线。

CAN操控器之外加上CAN收发器就可以用于CAN通讯了,所以随意找了一个小板子,焊接上CAN收发器TJA1050,就可以用于CAN通讯了。
在这篇博文中,先把一般的思路给自己理清一下。至于CAN协议的具体内容仍是要参阅CAN-BUS的标准了。在这里便是讲运用STM32单片机的CAN的简略思路。

STM32 CAN总线初始化过程:

1、装备相关引脚的复用功用,使能CAN时钟。

使能CAN时钟,经过APB1ENR的第25位来设置。其非必须设置CAN的相关引脚为复用输出,设置为上拉输入(CAN_RX),设置为复用输出(CAN_TX),并使能PA口的时钟。

2、设置CAN作业形式及波特率等。

先设置CAN_MCR寄存器的INRQ位,让CAN进入初始化形式,然后设置CAN_MCR的其他相关操控位,再经过CAN_BTR设置波特率和作业形式(正常形式/环回形式)等信息。最终设置INRQ为0,退出初始化形式。

3、设置滤波器。

设置CAN_FMR的FINIT位,让过滤器组作业在初始化形式下,然后设置滤波器组0的作业形式以及标识符ID和屏蔽为。最终激活滤波器。并退出滤波器初始化形式。假如用到中止,还要装备中止形式。

装备体系时钟和引脚不必做过多的说明晰,每一个例程基本上都有所包括。

重要的一点事怎样规划CAN的作业形式和波特率。

当CAN进入初始化之后,先设置CAN_MCR的操控位。见下面的图


用来操控这些设置。

接下来是设置寄存器CAN_BTR,经过这个寄存器来设置CAN的作业形式和波特率。

寄存器描绘

程序代码

mode用来设置形式,一般形式或许回环形式。

而下面的四个用来设置波特率,tsjw tbs2 tbs1 brp

这四个参数是怎样来决议CAN的波特率的呢?

然后使CAN退出初始化形式

然后再初始化过滤器


然后就可以开端进行通讯了。

待续

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/257860.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部