[STM32L5] 怎样用STM32CAN总线接口发送和接收数据

[复制链接]
5062|90
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:41 | 显示全部楼层
1. CAN控制内核
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:41 | 显示全部楼层
2.CAN发送邮箱
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:42 | 显示全部楼层
3.CAN接收FIFO
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:43 | 显示全部楼层
4.验收筛选器
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:43 | 显示全部楼层
STM32的有两组CAN控制器,其中CAN1是主设备,框图中的“存储访问控制器”是由CAN1控制的,CAN2无法直接访问存储区域,所以使用CAN2的时候必须使能CAN1外设的时钟。
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:46 | 显示全部楼层
STM32至少配备一个bxCAN(basic extend can )控制器,支持2.0A和2.0B协议,最高数据传输速率可达1M bps,支持11位标准帧格式和29位扩展帧格式的接收和发送,具备三个发送邮箱和两个接收FIFO,此wa此外还有三级可编程滤波器,STM32的bxCAN非常适应CAN总线网络y网络应用发展需求,其主要主要特征如下 :
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:47 | 显示全部楼层
支持CAN协议2.0A和2.0B主动模式波特率最高可达1Mbps支持时间触发通讯功能
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:50 | 显示全部楼层
数据发送特性:具备三个发送邮箱;发送报文的优先级可以通过软件配置,可记录发送时间的时间戳
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:51 | 显示全部楼层
数据接收特性:具备三级深度和两个接收FIFO;具备可变的过滤器组,具备可编程标识符列表,可配置FIFO溢出处理方式,记录接收时间的时间戳
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:53 | 显示全部楼层
报文管理:中断可屏蔽;邮箱单独占有一块地址空间,便于提高软件效率.
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:54 | 显示全部楼层
本文的实验设计将利用STM32 的bxCAN控制器的环回工作模式,实现bxCAN控制器的自收发过程,并使用串口设备跟踪监视数据收发情况.
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:56 | 显示全部楼层
程序流程如下图
822726178089978289.png
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:57 | 显示全部楼层
本程序设计主要围绕bxCAN控制器的初始化初始化配置展开,其要点罗列如下:
 楼主| 花间一壶酒sd 发表于 2021-10-26 21:58 | 显示全部楼层
1.初始化RCC寄存器,配置PLL输出72MHZ时钟,APB1总线频率为36MHZ,分别打开CAN,GPIO和USART1的设备时钟.
 楼主| 花间一壶酒sd 发表于 2021-10-26 22:01 | 显示全部楼层
2.设置CAN的Tx引脚(即PA12)为复用推挽模式,并设置Rx引脚(即PA1)为上拉输入模式,其中三个

重要的参数如下配置

CAN_InitStructure.CAN_SJW配置为CAN_SJW_1tq;

CAN_InitStructure.CAN_BS1配置为CAN_BS1_8tq;

CAN_InitStructure.CAN_BS2配置为CAN_BS2_7tq;
 楼主| 花间一壶酒sd 发表于 2021-10-26 22:03 | 显示全部楼层
3.最后分频数配置为5,配置接受接受缓冲区标识符为0x00AA0000,配置过滤器为32位屏蔽位模式,过滤器屏蔽标识符为0x00FF0000.
 楼主| 花间一壶酒sd 发表于 2021-10-26 22:04 | 显示全部楼层
4.初始化USART设备
 楼主| 花间一壶酒sd 发表于 2021-10-26 22:05 | 显示全部楼层
5.使用扩展帧shu帧数据格式,ID为0xAA,数据长度长度为8
 楼主| 花间一壶酒sd 发表于 2021-10-26 22:06 | 显示全部楼层
STM32的CAN控制器设计的重点集中在CAN寄存器组的初始化过程中,而CAN初始化的重点在于波特率的设置,过滤器的设置和位时序的设置,以下作详细叙述
 楼主| 花间一壶酒sd 发表于 2021-10-26 22:07 | 显示全部楼层
1.CAN波特率的计算

计算波特率是任何一种总线的zhon重要内容之一,CAN总线也不例外.从STM32微控制器的官方参考手册里可以查找到关于CAN波特率的计算公式
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部