STM32CubeMX配置CAN总线通信学习记录(学不会找我)

本文详细记录了使用STM32CubeMX配置STM32F03ZET6芯片进行CAN总线通信的过程,包括系统时钟、CAN参数、串口和DMA配置,以及代码生成和关键函数的添加。文中还提到了回环模式的设置和中断的启用,以及串口DMA在数据传输中的作用。
摘要由CSDN通过智能技术生成

STM32CubeMX 配置

首先打开STM32CubeMX 选择芯片型号建立工程,我这里选择STM32F03ZET6(正点原子战舰V3) 具体新建工程的过程不再赘述,太基础。
首先配置System Core目录下的SYS和RCC选项卡如下图:
(1)配置SYS下的Debug为Serial Wire

配置
(2)配置RCC下的HSE(高速时钟)为外部晶振Crystal/Ceramic Resonator,具体根据板子的硬件配置设置

在这里插入图片描述
(3)使能CAN总线并配置相关参数

在这里插入图片描述
在此说明CAN总线相关参数的配置方法,在F103ZET6中CAN是挂载在APB1下的低速外设,时钟36MHz,参数中的Prescaler(for Time Quantum)是指预分频系数,跟CAN总线的波特率相关,我这里设置为36分频,如此一来时钟就是1MHz,每一个周期为1us(即后面参数的1个Time是1us)方便计算,Time Quanta in Bit Segment 1和Time Quanta in Bit Segment 2 也是影响波特率的两个参数,具体计算如下:

Bound=1/(1*Tq+Tqbs1+Tqbs2)

其中Tqbs1代表的就是Time Quanta in Bit Segment 1所对应的时间,Tqbs2代表的就是Time Quanta in Bit Segment 2所对应的时间,Tq代表的是1个Time的时间。

所以以我的配置举例:1/(1us+4us+5us)=100K,这就是我的波特率。

STM32CubeMX配置CAN通信,可以按照以下步骤进行操作: 1. 打开STM32CubeMX软件,选择你的目标STM32微控制器型号,并创建一个新的工程。 2. 在"Pinout & Configuration"选项卡中,选择CAN外设。根据你的需求,选择一个可用的CAN控制器,并将其引脚分配给合适的GPIO引脚。 3. 在"Configuration"选项卡中,到"Peripherals"子选项卡,然后选择CANx (x表示你选择的CAN控制器编号)。 4. 在CAN配置界面中,你可以进行以下配置: - "Mode":选择CAN通信模式,可以是"Normal"、"Loopback"或"Silent"。 - "Baudrate Prescaler":设置CAN总线的波特率预分频系数。 - "Time Quantum in Bit Segment 1"和"Time Quantum in Bit Segment 2":设置CAN帧的时间段长度。 - "Synchronization Jump Width":设置CAN帧同步跳转宽度。 - "Transmitter Delay Compensation":设置发送器延迟补偿。 - "Automatic Bus Off Management":选择是否启用自动总线关闭管理。 - "Automatic Wakeup Mode":选择是否启用自动唤醒模式。 - "Filter Scale"和"Filter Mode":设置CAN过滤器的规模和模式。 - "Filter Identifier List Mode":选择过滤器的标识符列表模式。 - "Filter Identifier Mask Mode":选择过滤器的标识符掩码模式。 5. 配置完成后,点击"OK"按钮,然后生成代码。 6. 在生成的代码中,你可以使用HAL库提供的函数来初始化和配置CAN外设,并实现CAN通信的发送和接收操作。 以上是使用STM32CubeMX配置CAN通信的基本步骤。根据你的具体需求,你还可以进一步定制CAN外设的其他参数和功能。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值