STM32/GD32 单个CAN通信

各种通信协议速度分析

协议 最高速度(btis/s)
I2C 400K
CAN 1M
CAN-FD 5M
485 10M
SPI 36M

CAN协议图和通信帧

在这里插入图片描述

在这里插入图片描述

CubeMX CAN配置说明

CAN通信波特率 = APB1频率 / 分频系数 /(BS1 + BS2 + 同步通信段)* 1000

​ = 42 / 1 / (1+1+1) * 1000

​ = 14,000 KHz

​ = 14000000 bit/s

CAN最高只有1M,支持CAN-FD的单片机可以为8M

在这里插入图片描述

Time Triggered Communication Mode:

时间触发模式,用于生成时间戳,可以实现分时同步功能

Automatic Bus-Off Management

自动离线管理,当节点检测到它发送错误或接收错误超过一定值时,会自动进入离线状态

Automatic Wake-Up Mode

自动唤醒功能,CAN 外设可以使用软件进入低功耗的睡眠模式,如果使能了这个自动唤醒功能,当 CAN 检测到总线活动的时候,会自动唤醒

Automatic Retransmission

报文自动重传功能,设置这个功能后,当报文发送失败时会自动重传至成功为止

Receive Fifo Locked Mode

FIFO 锁定模式,该功能用于锁定接收 FIFO。锁定后,当接收 FIFO 溢出时,会丢弃下一个接收的报文。若不锁定,则下一个接收到的报文会覆盖原报文

Transmit Fifo Priority

报文发送优先级的判定方法,ID 优先级还是报文存进邮箱的顺序来发送

Operating Mode:

CAN模式

在这里插入图片描述
自发自收模式配置

在这里插入图片描述

示例程序

在这里插入图片描述

如果是GD32系列单片机需要在stm32f4xx_hal_can.c文件中添加如下代码,解决初始化CAN死机问题

CLEAR_BIT(hcan->Instance->MCR, CAN_MCR_SLEEP);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值