Stm32中CAN传输波特率的计算和配置

本文详细介绍了在STM32F407ZGT6开发板上如何计算和配置CAN接口的波特率,以实现250kbps,包括APB1时钟频率、BRP分频器以及Tseg1、Tseg2和TSJW参数的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Stm32中CAN传输波特率的计算和配置

计算

CAN波特率的计算首先要理解位时间特性的概念,建议自行理解一下,推荐链接:https://blog.csdn.net/flydream0/article/details/8170185

CAN波特率 = APB总线频率/BRP分频器/(1+tBS1+tBS2)
以最近学习的stm32f407ZGT6开发板为例,需要设置一个波特率为250k的CAN接口。
时钟配置如下:
在这里插入图片描述
如上图 APB1时钟 = 42MHz

配置

hcan2.Instance = CAN2;
  hcan2.Init.Prescaler = 12;//APB总线时钟4分频
  hcan2.Init.Mode = CAN_MODE_NORMAL;
  hcan2.Init.SyncJumpWidth = CAN_SJW_1TQ;
  hcan2.Init.TimeSeg1 = CAN_BS1_7TQ;//tBS1 = 7个tCAN时钟周期
  hcan2.Init.TimeSeg2 = CAN_BS2_6TQ;//tBS2 = 6个tCAN时钟周期
  hcan2.Init.TimeTriggeredMode = DISABLE;
  hcan2.Init.AutoBusOff = DISABLE;
  hcan2.Init.AutoWakeUp = DISABLE;
  hcan2.Init.AutoRetransmission = DISABLE;
  hcan2.Init.ReceiveFifoLocked = DISABLE;
  hcan2.Init.TransmitFifoPriority = DISABLE;

APB1 = 42MHz
CANbps= Fpclk/((Prescaler )*((BS1+BS2+1)
所以这里CANbps=42000/12/(7+6+1) = 250k bps
总体配置方向: Tseg1>=Tseg2 Tseg2>=tq; Tseg2>=2TSJW

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值