对can通信配置的讲解和代码实现

初时can通信的大家可能会一脸懵逼,不知道他是干什么的,刚刚接触底层协议看不懂,cubemx也不会配置,这里分享我的个人经验。 

 

 can外设包含了很多内容,我们需要用cubemx生成,上面是一些简单介绍。

好了,我们进入到cubemx界面开始配置时钟树,这里我们需要选择HSE(高速外部时钟晶振),需要先行在rcc中打开选择晶振,接下来选择pll(锁相倍频环),可以进行一些分频和倍频。频率选择最大的数字就行。 

接下来打开can,我建议选择普通的can,而不是fdcan(好像用不太到)

 

在can的界面下修改一些数据,如数据帧,波特率,字长,和FIFO

如果你要配置两个can,因该在数据段seg2把0改为1280.

fifo大家可能不太清楚它的功能,这里我介绍一下。

FIFO存储器是系统的缓冲环节,如果没有FIFO存储器,整个系统就不可能正常工作,它主要有几方面的功能:

1)对连续的数据流进行缓存,防止在进机和存储操作时丢失数据;

2)数据集中起来进行进栈和存储,可避免频繁的总线操作,减轻CPU的负担;

3)允许系统进行DMA操作,提高数据的传输速度。这是至关重要的一点,如果不采用DMA操作,数据传输将达不到传输要求,而且大大增加CPU的负担,无法同时完成数据的存储工作。

  同时我们需要配置can的中断,如图。

 基本配置完成,在project中按图勾选即可。

好了,can的底层已经配置好了,但是我们只是完成了一些参数的设定,还需要将他们在主函数中初始化。

 初始化完成,can通信的功能就是接收和发送数据,所以我们要在代码中实现相应功能。

 ppt中写的很清楚,就不在这里多过解释,这样can的功能已经基本实现。

本人还是小白,大佬勿喷,谢谢。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值