stm32 cubemx hal can配置示例和物理层介绍

CAN概念

全称Controller Area Network,是一种半双工,异步通讯。

物理层
闭环:允许总线最长40m,最高速1Mbps,规定总线两端各有一个120Ω电阻,闭环
开环:最大传输距离1Km,最高速125Kbps,规定每根线串联一个2.2kΩ的电阻,开环

CAN协议基本特点

基本特点如下:
可多主控制: 当CAN总线空闲时,所有在总线上的终端都可以发送报文,根据标识符(CAN ID)决定优先级,当总线上有两个以上的终端发送消息时,对各消息CAN ID的每个位进行逐个仲裁比较。CAN ID值越低,报文优先级越高速度快,距离远:CAN 协议最快可达1Mbps(距离小于40m),最远可达10KM(速率小于 5Kbps)

CAN 帧种类:CAN 通信中包含五种帧种类,数据帧、遥控帧、错误帧、过载帧、间隔帧。其中最重要的是数据帧,用于通讯节点向外传送数据。数据帧中有数据段,用于承载数据的内容,一帧可发送0~8个字节的数据,MSB先行。

显性电平对应“0”,隐性电平对应“1”。隐性电平(1)两条线电压都是2.5V,即压差为0;显性电平(0)CAN_High和CAN_Low分别为3.5V和1.5V,压差为2V。

总线上,只要有一个节点输出显性,则总线上为显性电平;只有所有节点都是隐性电平,总线才为隐性电平

在这里插入图片描述

can模式介绍

在这里插入图片描述

CAN波特率计算小工具

STM32 CAN Baud Rate CalculatorV1.0
在这里插入图片描述

STM32的CAN通信波特率计算器
在这里插入图片描述
关于采样点

1 什么是采样点 采样点是节点判断信号逻辑电平的位置,是CAN控制器读取总线电平,并解释各个比特的逻辑值的时间点。

2 为什么需要采样点
合适的采样点位置是CAN控制器正常通信的保证。对于CAN网络这个整体而言,多个节点要尽量保持同一个采样点。若网络中节点采样点不一致可能会导致同样的采样频率出现采样错误,进而使整个网络出现故障。

物理层介绍

在这里插入图片描述
在这里插入图片描述

cubemx 配置

  1. 配置系统时钟
    在这里插入图片描述
  2. 配置调试烧录接口
    在这里插入图片描述
  3. can配置
    配置波特率为250Kbps
    在这里插入图片描述
    打开接收中断
    在这里插入图片描述

代码部分

can 滤波器配置和can初始化

void CAN_Config(void)
{
   	

	CAN_FilterTypeDef  sFilterConfig;

  /*配置can滤波器*/
  sFilterConfig.FilterBank = 0;                     //过滤器0
  sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
  sFilterConfig.FilterIdHigh = 0x0000;              //32位ID
  sFilterConfig.FilterIdLow = 0x0000;
  sFilterConfig.FilterMa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的大熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值