打印
[STM32L5]

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

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
41
花间一壶酒sd|  楼主 | 2021-10-26 21:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
1. CAN控制内核

使用特权

评论回复
42
花间一壶酒sd|  楼主 | 2021-10-26 21:41 | 只看该作者
2.CAN发送邮箱

使用特权

评论回复
43
花间一壶酒sd|  楼主 | 2021-10-26 21:42 | 只看该作者
3.CAN接收FIFO

使用特权

评论回复
44
花间一壶酒sd|  楼主 | 2021-10-26 21:43 | 只看该作者
4.验收筛选器

使用特权

评论回复
45
花间一壶酒sd|  楼主 | 2021-10-26 21:43 | 只看该作者
STM32的有两组CAN控制器,其中CAN1是主设备,框图中的“存储访问控制器”是由CAN1控制的,CAN2无法直接访问存储区域,所以使用CAN2的时候必须使能CAN1外设的时钟。

使用特权

评论回复
46
花间一壶酒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网络应用发展需求,其主要主要特征如下 :

使用特权

评论回复
47
花间一壶酒sd|  楼主 | 2021-10-26 21:47 | 只看该作者
支持CAN协议2.0A和2.0B主动模式波特率最高可达1Mbps支持时间触发通讯功能

使用特权

评论回复
48
花间一壶酒sd|  楼主 | 2021-10-26 21:50 | 只看该作者
数据发送特性:具备三个发送邮箱;发送报文的优先级可以通过软件配置,可记录发送时间的时间戳

使用特权

评论回复
49
花间一壶酒sd|  楼主 | 2021-10-26 21:51 | 只看该作者
数据接收特性:具备三级深度和两个接收FIFO;具备可变的过滤器组,具备可编程标识符列表,可配置FIFO溢出处理方式,记录接收时间的时间戳

使用特权

评论回复
50
花间一壶酒sd|  楼主 | 2021-10-26 21:53 | 只看该作者
报文管理:中断可屏蔽;邮箱单独占有一块地址空间,便于提高软件效率.

使用特权

评论回复
51
花间一壶酒sd|  楼主 | 2021-10-26 21:54 | 只看该作者
本文的实验设计将利用STM32 的bxCAN控制器的环回工作模式,实现bxCAN控制器的自收发过程,并使用串口设备跟踪监视数据收发情况.

使用特权

评论回复
52
花间一壶酒sd|  楼主 | 2021-10-26 21:56 | 只看该作者
程序流程如下图

使用特权

评论回复
53
花间一壶酒sd|  楼主 | 2021-10-26 21:57 | 只看该作者
本程序设计主要围绕bxCAN控制器的初始化初始化配置展开,其要点罗列如下:

使用特权

评论回复
54
花间一壶酒sd|  楼主 | 2021-10-26 21:58 | 只看该作者
1.初始化RCC寄存器,配置PLL输出72MHZ时钟,APB1总线频率为36MHZ,分别打开CAN,GPIO和USART1的设备时钟.

使用特权

评论回复
55
花间一壶酒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;

使用特权

评论回复
56
花间一壶酒sd|  楼主 | 2021-10-26 22:03 | 只看该作者
3.最后分频数配置为5,配置接受接受缓冲区标识符为0x00AA0000,配置过滤器为32位屏蔽位模式,过滤器屏蔽标识符为0x00FF0000.

使用特权

评论回复
57
花间一壶酒sd|  楼主 | 2021-10-26 22:04 | 只看该作者
4.初始化USART设备

使用特权

评论回复
58
花间一壶酒sd|  楼主 | 2021-10-26 22:05 | 只看该作者
5.使用扩展帧shu帧数据格式,ID为0xAA,数据长度长度为8

使用特权

评论回复
59
花间一壶酒sd|  楼主 | 2021-10-26 22:06 | 只看该作者
STM32的CAN控制器设计的重点集中在CAN寄存器组的初始化过程中,而CAN初始化的重点在于波特率的设置,过滤器的设置和位时序的设置,以下作详细叙述

使用特权

评论回复
60
花间一壶酒sd|  楼主 | 2021-10-26 22:07 | 只看该作者
1.CAN波特率的计算

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则