STM32CUBEMX系列——CAN通讯的配置

CUBEMX配置说明

首先打开STM32CubeMX选择你开发的芯片型号,这里我选择的是F103R6Tx的芯片。然后第一步选择SYS里面的debug模式,如果用HAL库不进行SWD或JTAG配置,单片机只能进行下载一次程序,要进行第二次或更多次程序下载,需要按复位键(如果你的单片机有复位按键的话),或者用镊子夹住复位线路上的电容使其短路,点击Keil下载,再松开镊子。
在这里插入图片描述
然后RCC时钟源选择外部高速时钟,自接外部晶振 在这里插入图片描述
然后配置时钟树
在这里插入图片描述配置CAN相关参数,波特率设定为500K,时钟频率为36M,
波特率计算公式:36M/9/(5+2+1)=500K.
模式选择正常通讯
在这里插入图片描述使能CAN RX0中断,代表的是接受邮箱0的接收中断
在这里插入图片描述

CAN相关函数说明

HAL_CAN_Start	//开启CAN通讯
HAL_CAN_Stop	//关闭CAN通讯
HAL_CAN_RequestSleep	//尝试进入休眠模式
HAL_CAN_WakeUp	//从休眠模式中唤醒
HAL_CAN_IsSleepActive	//检查是否成功进入休眠模式
HAL_CAN_AddTxMessage	//向 Tx 邮箱中增加一个消息,并且激活对应的传输请求
HAL_CAN_AbortTxRequest	//请求中断传输
HAL_CAN_IsTxMessagePending	//检查是否有传输请求在指定的 Tx 邮箱上等待
HAL_CAN_GetRxMessage	//从Rx FIFO 收取一个 CAN 帧

过滤器的配置

关于过滤器的说明与详解,可以参考这个
链接: 再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结.

这个博客里面讲解的很详细
CUBEMX并没有初始化过滤器的相关内容,需要我们自己添加


void MX_CAN1_Init(void)
{
   
   

  hcan.Instance = CAN1;
  hcan.Init.Prescaler = 9;
  hcan.Init.Mode = CAN_MODE_NORMAL;
  hcan.Init.SyncJumpWidth = CAN_SJW_1TQ
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值